⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qmemoviewimpl.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
字号:
/*
 * Copyright 2006-2007 Queplix Corp.
 *
 * Licensed under the Queplix Public License, Version 1.1.1 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.queplix.com/solutions/commercial-open-source/queplix-public-license/
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.queplix.core.client.controls.memo;

import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.Widget;
import com.queplix.core.client.app.vo.uisettings.DialogUISettings;
import com.queplix.core.client.common.StringUtil;
import com.queplix.core.client.common.ui.resizable.Resizable;
import com.queplix.core.client.controls.QElementsCoupler;
import com.queplix.core.client.frames.htmledit.HtmlEditFrame;

/**
 * QMemoViewImpl.
 * @author Sultan Tezadov
 * @since 22 Feb 2007
 */
public abstract class QMemoViewImpl extends QMemoView {
    private static final int TEXTAREA_HEIGHT = 5;
    private static final int TEXTAREA_WIDTH = 30;
    
    protected static final int CONTROL_TEXTAREA = 0;
    protected static final int CONTROL_HTML_EDITOR = 1;
    protected static final int CONTROL_HTML_VIEWER = 2;
    
    protected class QueplixTextArea extends TextArea implements Resizable {
        public void setOffsetHeight(int height) {
            super.setHeight(StringUtil.pixelToSize(height));
        }

        public void setOffsetWidth(int width) {
            super.setWidth(StringUtil.pixelToSize(width));
        }
    }
    
    protected QMemoModelImpl model;
    protected QMemoEventHandlersCollection eventHandlers;
    protected QueplixTextArea textArea;
    protected HtmlEditFrame htmlEditorFrame;
    protected HTML html;
    
    protected static final QMemoEvent saveEvent = new QMemoEvent(QMemoEvent.EVENT_SAVE);

//    protected boolean ignoreTextUpdate;
    
    public static QMemoViewImpl createInstance(QMemoModelImpl model, int layout) {
        QMemoViewImpl instance;
        if (model.getMeta().isInline()) {
            instance = new QMemoViewImplInline(model, layout);
        } else {
            instance = new QMemoViewImplPopup(model, layout);
        }
        return instance;
    }
    
    protected QMemoViewImpl(QMemoModelImpl model, int layout) {
        super(model, layout);
        this.model = model;
        eventHandlers = new QMemoEventHandlersCollection();
        initGUI();
    }
    
    protected abstract DialogUISettings getUISettings();
    
    public abstract void showPopup();
    
    public void addEventHandler(QMemoEventHandler handler) {
        eventHandlers.add(handler);
    }
    
    public String getText() {
        return textArea.getText();
    }
    
    public void setText(String newText) {
        newText = StringUtil.nullToEmpty(newText);
        
        textArea.setText(newText);
        htmlEditorFrame.setText(newText);
        
        if (HtmlEditFrame.isHTML(newText)) {
            html.setHTML(newText);
        } else {
            html.setHTML("<pre>" + newText + "</pre>");
        }
    }
    
    protected void initGUI() {
        setCaption(model.getMeta().getCaption());
        
        textArea = new QueplixTextArea();
        textArea.addStyleName("styled_input");
        textArea.setCharacterWidth(TEXTAREA_WIDTH);
        textArea.setVisibleLines(TEXTAREA_HEIGHT);
        
        html = new HTML();
        html.setWidth("100%");
        html.setHeight("100%");
        
        htmlEditorFrame = new HtmlEditFrame(model);
        htmlEditorFrame.setText(model.getData().getText());
    }
    
    public void onModelMetaChanged() {
        setCaption(model.getMeta().getCaption());
        onModelDataChanged();
    }
    
    public void onModelDataChanged() {
        super.onModelDataChanged();
        setText(model.getData().getText());
    }
    
    protected int getControlType() {
        boolean readOnly = model.getBaseMeta().isReadOnly();
        boolean changeMode = isEditMode() || isNewMode();
        if (!readOnly  &&  changeMode) {
            return CONTROL_HTML_EDITOR;
        } else {
            if (isSearchMode()) {
                return CONTROL_TEXTAREA;
            } else {
                return CONTROL_HTML_VIEWER;
            }
        }
    }
    
    protected void refreshGUIData() {
        switch (getControlType()) {
            case CONTROL_TEXTAREA:
                break;
            case CONTROL_HTML_EDITOR:
                htmlEditorFrame.setText(model.getData().getText());
                htmlEditorFrame.load();
                break;
            case CONTROL_HTML_VIEWER:
                break;
        }
    }
    
    protected void contentChanged() {
    }
    
    public Widget getActiveControl() {
        return null;
    }

    public boolean canBeCoupled(int coupleType) {
        return getCaption().length() == 0 && coupleType == QElementsCoupler.RIGHT_ITEM;
    }

    public void coupleElement(int coupleType) {
        info.removeFromParent();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -