maintree.java

来自「CRM源码This file describes some issues tha」· Java 代码 · 共 134 行

JAVA
134
字号
/*
 * 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.
 */

/*
 * MainTree.java
 *
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.queplix.core.client.frames.mainframe.impl;

import com.queplix.core.client.app.vo.FamgMeta;
import com.queplix.core.client.app.vo.FocusMeta;
import com.queplix.core.client.app.vo.FormMeta;
import com.queplix.core.client.app.vo.MetaData;
import com.queplix.core.client.app.vo.SubFocusMeta;
import com.queplix.core.client.app.vo.TabMeta;
import com.queplix.core.client.controls.tree.QTree;
import com.queplix.core.client.controls.tree.QTreeNode;
import com.queplix.core.client.controls.tree.QTreeNodeListener;
import com.queplix.core.client.common.event.EventSource;
import com.queplix.core.client.common.event.Event;
import java.util.Map;
import java.util.HashMap;

/**
 *
 * @author aliaksandr.melnik
 */
class MainTree extends QTree {
    public static final Integer FOCUS = new Integer(0);
    public static final Integer SUBFOCUS = new Integer(1);
    public static final Integer TAB = new Integer(2);
    public static final Integer FORM = new Integer(3);

    private Map typesMap = new HashMap();

    // -------------------- public events ------------------------
    public static interface Events {
        Event/*]<FocusMeta.Index>[*/ FOCUS_SELECTED = new Event/*]<FocusMeta.Index>[*/();
        Event/*]<SubFocusMeta.Index>[*/ SUBFOCUS_SELECTED = new Event/*]<SubFocusMeta.Index>[*/();
        Event/*]<TabMeta.Index>[*/ TAB_SELECTED = new Event/*]<TabMeta.Index>[*/();
        Event/*]<FamgMeta.Index>[*/ FORM_SELECTED = new Event/*]<FamgMeta.Index>[*/();
    }

    private EventSource eventSource;

    public EventSource getEventSource() {
        return eventSource;
    }
    // ----------------- end of public events --------------------

    public MainTree(MetaData appMetaData) {
        eventSource = new EventSource(getView());

        QTreeNode node = getModel().getRoot();
        FocusMeta[] focuses = appMetaData.getFocuses();
        for (int i=0; i < focuses.length; i++) {
            FocusMeta focus = focuses[i];
            QTreeNode subNode = new QTreeNode(focus.getCaption(), focus.getIndex(), focus.getIcon());
            typesMap.put(focus.getIndex(), FOCUS);
            node.addChild(subNode);
            SubFocusMeta[] subFocuses = focus.getSubFocuses();
            for (int j=0; j < subFocuses.length; j++) {
                SubFocusMeta subFocus = subFocuses[j];
                QTreeNode subNode2 = new QTreeNode(subFocus.getCaption(), subFocus.getIndex(), subFocus.getIcon());
                typesMap.put(subFocus.getIndex(), SUBFOCUS);
                subNode.addChild(subNode2);
                TabMeta[] tabs = subFocus.getTabs();
                for (int k=0; k < tabs.length; k++) {
                    TabMeta tab = tabs[k];
                    QTreeNode subNode3 = new QTreeNode(tab.getCaption(), tab.getIndex(), tab.getIcon());
                    typesMap.put(tab.getIndex(), TAB);
                    subNode2.addChild(subNode3);
                    FamgMeta[] famgMeta = tab.getFamgs();
                    for (int m=0; m < famgMeta.length; m++) {
                        FormMeta form = famgMeta[m].getForm();
                        QTreeNode subNode4 = new QTreeNode(form.getCaption(), form.getIndex(), form.getIcon());
                        typesMap.put(form.getIndex(), FORM);
                        subNode3.addChild(subNode4);
                    }
                }
            }
        }
        getView().setRootNodeHidden(true);
        getView().expandRootChildren();
        getView().refresh();
//        getView().expandAll();
        
        getController().addNodeListener(new QTreeNodeListener() {
            public void onQTreeNodeSelected(QTreeNode node) {
                Integer type = (Integer) typesMap.get(node.getId());
                switch (type.intValue()) {
                    case 0: {
                        Events.FOCUS_SELECTED.setData(node.getId());
                        eventSource.fireEventGeneratedByUser(Events.FOCUS_SELECTED);
                        break;
                    }
                    case 1: {
                        Events.SUBFOCUS_SELECTED.setData(node.getId());
                        eventSource.fireEventGeneratedByUser(Events.SUBFOCUS_SELECTED);
                        break;
                    }
                    case 2: {
                        Events.TAB_SELECTED.setData(node.getId());
                        eventSource.fireEventGeneratedByUser(Events.TAB_SELECTED);
                        break;
                    }
                    case 3: {
                        Events.FORM_SELECTED.setData(node.getId());
                        eventSource.fireEventGeneratedByUser(Events.FORM_SELECTED);
                        break;
                    }
                }
            }
        });
    }
}

⌨️ 快捷键说明

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