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

📄 focusfa.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.frames.mainframe.impl;

import com.queplix.core.client.app.Application;
import com.queplix.core.client.app.vo.FamgMeta;
import com.queplix.core.client.app.vo.FamgMeta.Index;
import com.queplix.core.client.app.vo.FocusMeta;
import com.queplix.core.client.app.vo.SubFocusMeta;
import com.queplix.core.client.app.vo.TabMeta;
import com.queplix.core.client.common.event.EventSource;
import com.queplix.core.client.common.event.Event;
import com.queplix.core.client.common.ui.resizable.ResizableLazyDeckPanel;
import com.queplix.core.client.controls.form.QForm;

/**
 * Postfix FA - Form Area.
 * On sub focus change you should select corresponding SubFocusFA in this 
 * class to show contents.
 * Class MainFrameFA contains array of FocusFA.
 * This class FocusFA contains array of SubFocusFA.
 * Class SubFocusFA contains array of TabFA.
 * Class TabFA contains array of QForm.
 *
 * @author Aliaksandr Melnik
 * @since 19 Oct 2006
 */
class FocusFA extends ResizableLazyDeckPanel {
    // -------------------- public events ------------------------
    public static interface Events extends SubFocusFA.Events {
        Event SUBFOCUS_SELECTED_EVENT = new Event();
    }
    
    private EventSource eventSource = new EventSource(this);
    
    public EventSource getEventSource() {
        return eventSource;
    }
    // ----------------- end of public events --------------------

    private SubFocusFA[] subFocusesFA;
    private SubFocusMeta[] subFocusesMeta;

    private int activeSubfocus = -1;

    private String status;
    
    private boolean fireInitialization;

    public FocusFA(FocusMeta focusMeta, boolean fireInitialization, FamgMeta.Index indexToActivate) {
        super(focusMeta.getSubFocuses().length);
        this.indexToActivate = indexToActivate == null ? DEFAULT_INDEX_TO_ACTIVATE : indexToActivate; 
        this.fireInitialization = fireInitialization;
        status = Application.getStatus();
        
        subFocusesMeta = focusMeta.getSubFocuses();
        subFocusesFA = new SubFocusFA[subFocusesMeta.length];

        if(subFocusesMeta.length > 0) {
            activateSubFocus(indexToActivate.subFocus);
        }
    }
    
    public void setFormsState(int formState) {
        for (int i = 0; i < subFocusesFA.length; i++) {
            if(subFocusesFA[i] != null) {
                subFocusesFA[i].setFormsState(formState);
            }
        }
    }

    protected void createCard(int index) {
        if(index == 0) {
            Application.setStatus(status + " -> subFocus: " + subFocusesMeta[index].getCaption());
        }
        SubFocusFA subFocusFA = new SubFocusFA(subFocusesMeta[index], fireInitialization, indexToActivate);
        subFocusFA.getEventSource().addEventListener(eventSource); // retranslate events
        remove(index);
        insert(subFocusFA, index);
        subFocusesFA[index] = subFocusFA;
        if(fireInitialization) {
            initialized();
        }
        fireInitialization = true;
    }

    public QForm getForm(FamgMeta.Index index) {
        QForm ret = null;
        SubFocusFA subFocusFA = subFocusesFA[index.subFocus];
        if (subFocusFA != null) {
            ret = subFocusFA.getForm(index);
        }
        return ret;
    }

    public TabFA getTab(TabMeta.Index index) {
        TabFA ret = null;
        SubFocusFA subFocusFA = subFocusesFA[index.subFocus];
        if (subFocusFA != null) {
            ret = subFocusFA.getTab(index);
        }
        return ret;
    }

    public QForm getActiveForm() {
        return subFocusesFA[activeSubfocus].getActiveForm();
    }

    public void activateForm(FamgMeta.Index index) {
        activateSubFocus(index);
        subFocusesFA[activeSubfocus].activateForm(index);
    }

    public void activateTab(TabMeta.Index index) {
        activateSubFocus(index);
        subFocusesFA[activeSubfocus].activateTab(index);
    }

    public void activateSubFocus(SubFocusMeta.Index index) {
        if(index.subFocus != activeSubfocus) {
            activateSubFocus(index.subFocus);
        }
    }

    private void activateSubFocus(int index) {
        activeSubfocus = index;
        showWidget(index);
        eventSource.fireEvent(Events.SUBFOCUS_SELECTED_EVENT);
    }

    public SubFocusFA getSubFocus(SubFocusMeta.Index index) {
        return subFocusesFA[index.subFocus];
    }

    public SubFocusMeta.Index getSelectedSubFocusIndex() {
        return subFocusesMeta[getVisibleWidget()].getIndex();
    }

    public TabMeta.Index getSelectedTabIndex() {
        return subFocusesFA[getVisibleWidget()].getSelectedTabIndex();
    }

    public FamgMeta.Index getSelectedFormIndex() {
        return subFocusesFA[getVisibleWidget()].getSelectedFormIndex();
    }

    public boolean performCommand(FormCommand command, FamgMeta.Index formIndex) {
        return subFocusesFA[formIndex.subFocus].performCommand(command, formIndex);
    }

    /**
     * Called when the object is fully initialized by the creator.
     */
    void initialized() {
        subFocusesFA[activeSubfocus].initialized();
    }

    boolean isInEditMode() {
        for (int i = 0; i < subFocusesFA.length; i++) {
            if (subFocusesFA[i] != null) {
                if (subFocusesFA[i].isInEditMode()) {
                    return true;
                }
            }
        }
        return false;
    }

    void collectUISettings() {
        for (int i = 0; i < subFocusesFA.length; i++) {
            if(subFocusesFA[i] != null) {
                subFocusesFA[i].collectUISettings();
            }
        }
    }

    public FamgMeta.Index getNextExistingFormIndex(int subFocus, int tab, int famg) {
        FamgMeta.Index ret = null;
        for (int i=subFocus; i < subFocusesFA.length; i++) {
            if(subFocusesFA[i] != null) {
                FamgMeta.Index nextIndex = subFocusesFA[i].getNextExistingFormIndex(tab, famg);
                if(nextIndex != null) {
                    ret = nextIndex;
                    break;
                }
            }
            tab = 0;//reset to first
            famg = -1;
        }
        return ret;
    }
}

⌨️ 快捷键说明

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