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

📄 qformviewimpl.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    /**
     * If the keyCode is contained within a string,
     * it gets underlined in it
     * @param buttonCaption caption to process
     * @return HTML code
     */
    private String getUnderlined(String buttonCaption){
        if(keyCodes.containsKey(buttonCaption)) {
            Character c = (Character)keyCodes.get(buttonCaption);
            String csUp = c.toString().toUpperCase();
            String cs   = c.toString();
            int indexUp = buttonCaption.indexOf(csUp);
            int index   = buttonCaption.indexOf(cs);
            if(indexUp != -1){
                return buttonCaption.substring(0, indexUp)
                + "<u>" + csUp + "</u>"
                        + buttonCaption.substring(indexUp + 1, buttonCaption.length());
            } else if(index != -1){
                return buttonCaption.substring(0, index)
                + "<u>" + cs + "</u>"
                        + buttonCaption.substring(index + 1, buttonCaption.length());
            }
        }
        return buttonCaption;
    }
    
    /**
     * Initialize keyboard event handler
     */
    private void initKeyboardHandling() {
        keyCodes.put(SEARCH_BUTTON_CAPTION, SEARCH_BUTTON_KEYCODE);
        keyCodes.put(CLEAR_BUTTON_CLEAR_CAPTION, CLEAR_BUTTON_CLEAR_KEYCODE);
        keyCodes.put(CLEAR_BUTTON_CANCEL_CAPTION, CLEAR_BUTTON_CANCEL_KEYCODE);
        keyCodes.put(NEW_BUTTON_CAPTION, NEW_BUTTON_KEYCODE);
        keyCodes.put(CHANGE_BUTTON_CAPTION, CHANGE_BUTTON_KEYCODE);
        keyCodes.put(UPDATE_BUTTON_CAPTION, UPDATE_BUTTON_KEYCODE);
        
        keyboardEventPreview = new EventPreview() {
            public boolean onEventPreview(final com.google.gwt.user.client.Event e) {
                switch (DOM.eventGetType(e)) {
                    case com.google.gwt.user.client.Event.ONKEYUP: {
                        char keyCode = (char) DOM.eventGetKeyCode(e);
                        int modifiers = KeyboardListenerCollection.getKeyboardModifiers(e);
                        if (processKeyEvents(keyCode, modifiers)) {
                            DOM.eventPreventDefault(e);
                            return false;
                        }
                        break;
                    }
                    case com.google.gwt.user.client.Event.ONKEYDOWN: {
                        char keyCode = (char) DOM.eventGetKeyCode(e);
                        int modifiers = KeyboardListenerCollection.getKeyboardModifiers(e);
                        return processKeyDown(keyCode, modifiers);
                    }
                }
                return true;
            }
        };
    }
    
    private boolean processKeyDown(char keyCode, int modifiers) {
        boolean res = true;
        Character kc = new Character(Character.toLowerCase(keyCode));
        if (keyCode == KeyboardListener.KEY_ENTER) {
            int formState = model.getFormState();
            if (formState == FormState.SEARCH_STATE) {
                if (textAreaHasFocus) {
                    return true;
                }
                formElementsEventSource.fireEvent(QFormController.Events.FORM_SEARCH_BUTTON_EVENT);
            } else if (formState == FormState.SELECTED_STATE) {
                formElementsEventSource.fireEvent(QFormController.Events.FORM_SEARCH_BUTTON_EVENT);
            } else if (formState == FormState.NEW_STATE || formState == FormState
                    .EDIT_STATE) {
                if (textAreaHasFocus) {
                    return true;
                }
                formElementsEventSource.fireEvent(QFormController.Events.FORM_UPDATE_BUTTON_EVENT);
            }
        } else if (modifiers == DEFAULT_MODIFIER_KEY) {
            if (kc.equals((Character) keyCodes.get(SEARCH_BUTTON_CAPTION)) ||
                kc.equals((Character) keyCodes.get(CLEAR_BUTTON_CLEAR_CAPTION)) ||
                kc.equals((Character) keyCodes.get(CLEAR_BUTTON_CANCEL_CAPTION)) ||
                kc.equals((Character) keyCodes.get(CLEAR_BUTTON_CANCEL_CAPTION)) ||
                kc.equals((Character) keyCodes.get(NEW_BUTTON_CAPTION)) ||
                kc.equals((Character) keyCodes.get(CHANGE_BUTTON_CAPTION)) ||
                kc.equals((Character) keyCodes.get(UPDATE_BUTTON_CAPTION))) {
                return false;
            } else {
                res = true;
            }
        }
        return res;
    }
    
    private boolean isButtonEnabled(String buttonCaption) {
        if(buttonCaption.equals(SEARCH_BUTTON_CAPTION) && (searchButton != null) && searchButton.isEnabled() && presentButtons.contains(buttonCaption)){
            return true;
        } else if (((buttonCaption.equals(UPDATE_BUTTON_CAPTION) && presentButtons.contains(UPDATE_BUTTON_CAPTION))
        || ((buttonCaption.equals(CHANGE_BUTTON_CAPTION)) && presentButtons.contains(CHANGE_BUTTON_CAPTION))) && (changeOrUpdateButton != null) && changeOrUpdateButton.isEnabled() ){
            return true;
        } else if (((buttonCaption.equals(CLEAR_BUTTON_CLEAR_CAPTION) && presentButtons.contains(CLEAR_BUTTON_CLEAR_CAPTION))
        || ((buttonCaption.equals(CLEAR_BUTTON_CANCEL_CAPTION)) && presentButtons.contains(CLEAR_BUTTON_CANCEL_CAPTION))) && (clearButton != null) && clearButton.isEnabled()) {
            return true;
        } else if(buttonCaption.equals(NEW_BUTTON_CAPTION) && (newButton != null) && newButton.isEnabled() && presentButtons.contains(buttonCaption)){
            return true;
        }
        return false;
    }
    
    /**
     * Process keyboard events
     */
    private boolean processKeyEvents(char keyCode, int modifiers) {
        boolean res = true;
        Character kc = new Character(Character.toLowerCase(keyCode));
        if((modifiers == DEFAULT_MODIFIER_KEY) && (kc.equals((Character)keyCodes.get(SEARCH_BUTTON_CAPTION)))
        && (isButtonEnabled(SEARCH_BUTTON_CAPTION))) {
            formElementsEventSource.fireEvent(QFormController.Events.FORM_SEARCH_BUTTON_EVENT);
        } else if((modifiers == DEFAULT_MODIFIER_KEY) && (((kc.equals((Character)keyCodes.get(CLEAR_BUTTON_CLEAR_CAPTION)))
        && (isButtonEnabled(CLEAR_BUTTON_CLEAR_CAPTION)))
        || ((kc.equals((Character)keyCodes.get(CLEAR_BUTTON_CANCEL_CAPTION)))
        && (isButtonEnabled(CLEAR_BUTTON_CANCEL_CAPTION))))) {
            formElementsEventSource.fireEvent(QFormController.Events.FORM_CLEAR_BUTTON_EVENT);
        } else if((modifiers == DEFAULT_MODIFIER_KEY) && (kc.equals((Character)keyCodes.get(CLEAR_BUTTON_CANCEL_CAPTION)))
        && (isButtonEnabled(CLEAR_BUTTON_CANCEL_CAPTION))) {
            formElementsEventSource.fireEvent(QFormController.Events.FORM_CLEAR_BUTTON_EVENT);
        } else if((modifiers == DEFAULT_MODIFIER_KEY) && (kc.equals((Character)keyCodes.get(NEW_BUTTON_CAPTION)))
        && (isButtonEnabled(NEW_BUTTON_CAPTION))) {
            formElementsEventSource.fireEvent(QFormController.Events.FORM_NEW_BUTTON_EVENT);
        } else if((modifiers == DEFAULT_MODIFIER_KEY) && (kc.equals((Character)keyCodes.get(CHANGE_BUTTON_CAPTION)))
        && (isButtonEnabled(CHANGE_BUTTON_CAPTION))) {
            formElementsEventSource.fireEvent(QFormController.Events.FORM_CHANGE_BUTTON_EVENT);
        } else if((modifiers == DEFAULT_MODIFIER_KEY) && (kc.equals((Character)keyCodes.get(UPDATE_BUTTON_CAPTION)))
        && (isButtonEnabled(UPDATE_BUTTON_CAPTION))) {
            formElementsEventSource.fireEvent(QFormController.Events.FORM_UPDATE_BUTTON_EVENT);
        } else if(modifiers == (DEFAULT_MODIFIER_KEY + KeyboardListener.KEY_RIGHT)) {
            // Move to the next form
            DialogHelper.showModalMessageDialog("Next form");
        } else if(modifiers == (DEFAULT_MODIFIER_KEY + KeyboardListener.KEY_LEFT)) {
            // Move to the previous form
            DialogHelper.showModalMessageDialog("Previous form");
        } else {
            res = false;
        }
        return res;
    }
    
    public boolean isSelected() {
        return selected;
    }
    
    EventSource getContextMenuEventSource() {
        return contextMenu.getEventSource();
    }
    
    EventSource formElementsEventSource = new EventSource(this);
    
    EventSource getFormElementsEventSource() {
        return formElementsEventSource;
    }
    
    public void setAdhocControlsEnabled(boolean isEnabled) {
        int designState = isEnabled ? QFormElementModel.NOT_IN_REPORT : QFormElementModel.DISABLED_FOR_REPORT_DESIGN;
        Set ids = controls.keySet();
        for(Iterator iterator = ids.iterator(); iterator.hasNext();) {
            QFormElement formElement = ((QFormElement) controls.get(iterator.next()));
            formElement.getBaseModel().setReportDesignState(designState);
        }
    }
    
    public void setAdhocControlState(String elementId, int state) {
        QFormElement qFormElement = getElement(elementId);
        if(qFormElement != null) {
            qFormElement.getBaseModel().setReportDesignState(state);
        }
    }

    public int getAdhocControlState(String elementId) {
        QFormElement qFormElement = getElement(elementId);
        return qFormElement != null ? qFormElement.getBaseModel().getReportDesignState() : QFormElementModel.DISABLED_FOR_REPORT_DESIGN;
    }

    public boolean isAdhocControlInReport(String elementId) {
        QFormElement qFormElement = getElement(elementId);
        return qFormElement != null ? qFormElement.getBaseModel().getReportDesignState() == QFormElementModel.IN_REPORT : false;
    }

    private QFormElement getElement(String elementId) {
        return (QFormElement) controls.get(elementId);
    }

    public FormLayoutMeta getLayoutMeta() {
        return layoutMeta;
    }
    
    /**
     * Used for adding instead of unknown elements (which is declared in FormLayoutMeta but doesn't actually
     * exist in model).
     */
    //TODO redesigne this class in order to save height of an element
    private final static class QErrorLabel extends QFormElementView {
        private Label label;
        
        public int getClientWidth() {
            return getOffsetWidth();
        }
        
        protected void setClientWidth(String clientWidth) {
            setWidth(clientWidth);
        }
        
        public void setClientWidth(int clientWidth) {
            if (clientWidth > getOffsetWidth()) {
                super.setClientWidth(clientWidth);
            }
        }
        
        protected void setEnabled(boolean isEnabled) {
        }
        
        public void initializeBaseUI(int layout) {
            label = new Label();
            label.setWordWrap(false);
            addToPanel(label);
            initPanel();
        }
        
        /*public QErrorLabel(int layout) {
            this(layout, "");
        }*/
        
        public QErrorLabel(int layout, String contant) {
            super(new ElementModelAdapter(), layout);
            label.setText(contant);
        }
    }
    
    private static class ElementModelAdapter extends QFormElementModelImpl {
        public ElementModelAdapter() {
            setBaseMeta(new BaseFieldMeta(FieldMeta.CHECKBOX, "unknown_element_id", ""));//just fake
        }
        
        public boolean isLinkable() {
            return false;
        }
        
        public boolean isValid() {
            return false;
        }
        
        public int getDataType() {
            return 0;
        }
        
        public void cloneDataFrom(QFormElementModel sameTypeControlModel) throws DataCloneException {
        }
    }
    
    public int getFormLabelsOrientation() {
        return labelsOrientation;
    }
    
    void hideContextMenu() {
        if (contextMenu.isVisible()) {
            contextMenu.hide();
        }
    }
    
    void collectUISettings() {
        Set ids = controls.keySet();
        for(Iterator iterator = ids.iterator(); iterator.hasNext();) {
            ((QFormElement) controls.get(iterator.next())).getBaseController().collectUISettings();
        }
    }
    
    void setCustomButtonsEnabled(boolean enabled) {
        setCustomButtonsEnabled(null, enabled);
    }
    
    public void setCustomButtonsEnabled(String[] buttonsId, boolean enabled) {
        Set ids;
        if (buttonsId != null && buttonsId.length > 0) {
            ids = new HashSet();
            for (int i = 0; i < buttonsId.length; i++) {
                ids.add(buttonsId[i]);
            }
        }
        else {
            ids = customButtons.keySet();
        }
        for (Iterator iterator = ids.iterator(); iterator.hasNext();) {
            ((QButton) customButtons.get(iterator.next())).setEnabled(enabled);
        }
    }

    
}

⌨️ 快捷键说明

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