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

📄 loadsearchbox.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.google.gwt.user.client.ui.Widget;
import com.queplix.core.client.i18n.I18N;
import com.queplix.core.client.app.vo.FieldMeta;
import com.queplix.core.client.app.vo.FocusMeta;
import com.queplix.core.client.app.vo.GridData;
import com.queplix.core.client.app.vo.GridMeta;
import com.queplix.core.client.app.vo.MetaData;
import com.queplix.core.client.app.vo.RowData;
import com.queplix.core.client.app.vo.SavedSearchObject;
import com.queplix.core.client.app.vo.TextBoxFieldMeta;
import com.queplix.core.client.common.event.Event;
import com.queplix.core.client.common.event.EventListener;
import com.queplix.core.client.common.ui.ButtonData;
import com.queplix.core.client.common.ui.DialogHelper;
import com.queplix.core.client.common.ui.IconButton;
import com.queplix.core.client.common.ui.MenuPopup;
import com.queplix.core.client.common.ui.OkayCancelPopup;
import com.queplix.core.client.common.ui.grid.GridSelectionModListener;
import com.queplix.core.client.controls.grid.QGrid;
import com.queplix.core.client.controls.grid.QGridController;


/**
 * A box with saved searches list
 * @author Vasily Mikhailitchenko
 * @since 19 Feb 2007
 */
class LoadSearchBox extends OkayCancelPopup implements EventListener {
    public static final int MIN_HEIGHT = 108;
    public static final int MIN_WIDTH = 335;

    private EventListener commonEventsListener;
    private EventListener menuEventListener;
    private MetaData appMetaData;

    public static interface Events {
        Event/*]<Long>[*/ DELETE_SAVED_SEARCH = new Event();
        Event/*]<SavedSearchObject>[*/ DO_LOAD_SAVED_SEARCH = new Event();
        Event DELETE_ACTION = new Event(); // internal
    }

    private QGrid grid;
    private GridData gd = new GridData();
    private SavedSearch savedSearch;
    private String selectedSearchName;
    private Long selectedRecordID;

    public LoadSearchBox(String caption, SavedSearch savedSearch, MetaData appMetaData) {
        super(caption, true);
        grid = new QGrid(new GridMeta(new FieldMeta[]{
                new TextBoxFieldMeta("1", I18N.getMessages().searchName())
                , new TextBoxFieldMeta("2", I18N.getMessages().focus())
        }, new long[]{0, 1}), true, false, false, false, true);

        this.savedSearch = savedSearch;
        this.selectedSearchName = null;
        this.appMetaData = appMetaData;

        IconButton ib = new IconButton(new ButtonData(I18N.getMessages().delete()));
        MenuPopup menu = grid.getView().getMenu();
        menu.addButton(Events.DELETE_ACTION, ib.getButtonState());

        initEventListeners();

        menu.getEventSource().addEventListener(menuEventListener);
        grid.getController().getEventSource().addEventListener(commonEventsListener);
        this.setWidget(grid.getView());
        this.setMinSize(MIN_WIDTH, MIN_HEIGHT);
        getEventSource().addEventListener(commonEventsListener);
    }

    private void refreshDataGrid() {
        selectedSearchName = null;
        selectedRecordID = null;
        SavedSearchObject[] savedSearches = savedSearch.getSavedSearches();
        gd = new GridData();
        for(int i = 0; i < savedSearches.length; i++) {
            SavedSearchObject searchObject = savedSearches[i];
            String searchName = searchObject.getSearchName();
            String formId = searchObject.getFormId();
            FocusMeta.Index focusIndex = appMetaData.getIndexByID(formId);
            String focusName = appMetaData.getFocuses()[focusIndex.focus].getCaption();
            gd.insertRow(new RowData(new Long(i), new String[]{searchName, focusName}));
        }
        ((GridSelectionModListener)grid.getController()).onDeselectAll();
        grid.getModel().setGridData(gd);
    }

    public void onRefresh() {
        refreshDataGrid();
    }

    private void initEventListeners() {
        commonEventsListener =  new EventListener(){
            public void onEvent(Event event, Widget sender) {
                if(OkayCancelPopup.Events.OK.equals(event)){
                    if(selectedSearchName != null){
                        Events.DO_LOAD_SAVED_SEARCH.setData(savedSearch.loadSearch(selectedSearchName));
                        getEventSource().fireEvent(Events.DO_LOAD_SAVED_SEARCH);
                        hide();
                    }
                } else if(OkayCancelPopup.Events.CANCEL.equals(event)){
                    hide();
                } else if(QGridController.Events.RECORD_SELECTED.equals(event)) {
                    Long selectedRow = (Long) QGridController.Events.RECORD_SELECTED
                            .getData();
                    SavedSearchObject[] savedSearches = savedSearch.getSavedSearches();
                    SavedSearchObject searchObject = savedSearches[selectedRow.intValue()];
                    selectedRecordID = searchObject.getRowID();
                    selectedSearchName = searchObject.getSearchName();
                }
            }
        };

        menuEventListener =  new EventListener(){
            public void onEvent(Event event, Widget sender) {
                if(Events.DELETE_ACTION.equals(event)){
                    if(selectedRecordID != null){
                        int answer = DialogHelper.showModalQuestionDialog(I18N.getMessages().deleteSearchItem());
                        if(answer == DialogHelper.YES){
                            Events.DELETE_SAVED_SEARCH.setData(selectedRecordID);
                            getEventSource().fireEvent(Events.DELETE_SAVED_SEARCH);
                        }
                    }
                }
            }
        };        
    }

    public String getName() {
        return selectedSearchName;
    }
}

⌨️ 快捷键说明

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