com.ikon.frontend.client.widget.thesaurus.ThesaurusSelectPopup.java Source code

Java tutorial

Introduction

Here is the source code for com.ikon.frontend.client.widget.thesaurus.ThesaurusSelectPopup.java

Source

/**
 *  openkm, Open Document Management System (http://www.openkm.com)
 *  Copyright (c) 2006-2013  Paco Avila & Josep Llort
 *
 *  No bytes were intentionally harmed during the development of this application.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

package com.ikon.frontend.client.widget.thesaurus;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.ikon.frontend.client.Main;

/**
 * ThesaurusSelectPopup
 * 
 * @author jllort
 *
 */
public class ThesaurusSelectPopup extends DialogBox {
    public static final int NONE = -1;
    public static final int DOCUMENT_PROPERTIES = 0;
    public static final int WIZARD = 1;
    public static final int MAIL_PROPERTIES = 2;
    public static final int FOLDER_PROPERTIES = 3;
    public static final int MASSIVE = 4;

    public ThesaurusPanel thesaurusPanel;
    private VerticalPanel vPanel;
    private HorizontalPanel hPanel;
    private Button cancelButton;
    private Button actionButton;
    private int selectedFrom = NONE;

    /**
     * ThesaurusSelectPopup
     */
    public ThesaurusSelectPopup() {
        // Establishes auto-close when click outside
        super(false, true);

        thesaurusPanel = new ThesaurusPanel();

        vPanel = new VerticalPanel();
        vPanel.setWidth("500");
        vPanel.setHeight("325");
        hPanel = new HorizontalPanel();

        cancelButton = new Button(Main.i18n("button.close"), new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                hide();
            }
        });

        actionButton = new Button(Main.i18n("button.add"), new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                if (thesaurusPanel.isTabTreeSelected()) {
                    executeAction(thesaurusPanel.getActualPath());
                } else if (thesaurusPanel.isTabKeywordSelected()) {
                    executeAction(thesaurusPanel.getSelectedKeyword());
                }
            }
        });

        vPanel.add(thesaurusPanel);
        vPanel.add(new HTML("<br>"));
        hPanel.add(cancelButton);
        HTML space = new HTML();
        space.setWidth("50");
        hPanel.add(space);
        hPanel.add(actionButton);
        vPanel.add(hPanel);
        vPanel.add(new HTML("<br>"));

        vPanel.setCellHorizontalAlignment(thesaurusPanel, HasAlignment.ALIGN_CENTER);
        vPanel.setCellHorizontalAlignment(hPanel, HasAlignment.ALIGN_CENTER);
        vPanel.setCellHeight(thesaurusPanel, "300");

        cancelButton.setStyleName("okm-NoButton");
        actionButton.setStyleName("okm-AddButton");

        super.hide();
        setWidget(vPanel);
    }

    /**
     * Executes the action
     */
    public void executeAction(String actualPath) {
        String keyword = actualPath.substring(actualPath.lastIndexOf("/") + 1).replace(" ", "_");
        switch (selectedFrom) {
        case DOCUMENT_PROPERTIES:
            Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.document.addKeywordToPendinList(keyword);
            Main.get().mainPanel.desktop.browser.tabMultiple.tabDocument.document.addPendingKeyWordsList();
            break;
        case WIZARD:
            Main.get().wizardPopup.keywordsWidget.addKeywordToPendinList(keyword);
            Main.get().wizardPopup.keywordsWidget.addPendingKeyWordsList();
            break;
        case MAIL_PROPERTIES:
            Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.mail.addKeywordToPendinList(keyword);
            Main.get().mainPanel.desktop.browser.tabMultiple.tabMail.mail.addPendingKeyWordsList();
            break;
        case FOLDER_PROPERTIES:
            Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.folder.addKeywordToPendinList(keyword);
            Main.get().mainPanel.desktop.browser.tabMultiple.tabFolder.folder.addPendingKeyWordsList();
            break;
        case MASSIVE:
            Main.get().keywordsPopup.addKeywordToPendinList(keyword);
            Main.get().keywordsPopup.addPendingKeyWordsList();
            break;

        }
    }

    /**
     * Language refresh
     */
    public void langRefresh() {
        setText(Main.i18n("thesaurus.directory.select.label"));
        cancelButton.setText(Main.i18n("button.close"));
        actionButton.setText(Main.i18n("button.add"));
        thesaurusPanel.langRefresh();
    }

    /**
     * Shows the popup 
     */
    public void show(int selectedFrom) {
        this.selectedFrom = selectedFrom;
        initButtons();
        int left = (Window.getClientWidth() - 400) / 2;
        int top = (Window.getClientHeight() - 325) / 2;
        setPopupPosition(left, top);
        setText(Main.i18n("thesaurus.directory.select.label"));

        // Resets to initial tree value
        thesaurusPanel.reset();

        center();
    }

    /**
     * Enables or disables move button
     * 
     * @param enable
     */
    public void enable(boolean enable) {
        actionButton.setEnabled(enable);
    }

    /**
     * Enables all button
     */
    private void initButtons() {
        cancelButton.setEnabled(true);
        actionButton.setEnabled(false);
    }
}