    001    // This file is part of the Attempto Java Packages.
    002    // Copyright 2008, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch).
    003    //
    004    // The Attempto Java Packages is free software: you can redistribute it and/or modify it under the
    005    // terms of the GNU Lesser General Public License as published by the Free Software Foundation,
    006    // either version 3 of the License, or (at your option) any later version.
    007    //
    008    // The Attempto Java Packages is distributed in the hope that it will be useful, but WITHOUT ANY
    009    // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    010    // PURPOSE. See the GNU Lesser General Public License for more details.
    011    //
    012    // You should have received a copy of the GNU Lesser General Public License along with the Attempto
    013    // Java Packages. If not, see http://www.gnu.org/licenses/.
    014
    015    package ch.uzh.ifi.attempto.acewiki.gui.editor;
    016
    017    import nextapp.echo2.app.Alignment;
    018    import nextapp.echo2.app.Border;
    019    import nextapp.echo2.app.Color;
    020    import nextapp.echo2.app.ContentPane;
    021    import nextapp.echo2.app.Extent;
    022    import nextapp.echo2.app.Font;
    023    import nextapp.echo2.app.Insets;
    024    import ch.uzh.ifi.attempto.echocomp.Style;
    025    import ch.uzh.ifi.attempto.echocomp.WindowPane;
    026    import echopointng.ButtonEx;
    027    import echopointng.TabbedPane;
    028    import echopointng.tabbedpane.DefaultTabModel;
    029
    030    /**
    031     * This class represents the word editor that is used to create or modify words. It can contain
    032     * several tabs for several word forms.
    033     *
    034     * @author Tobias Kuhn
    035     */
    036    public class WordEditorWindow extends WindowPane {
    037
    038            private static final long serialVersionUID = 6805275173727379038L;
    039
    040            private TabbedPane tabbedPane = new TabbedPane();
    041
    042            private WordEditorWindow(String title) {
    043                    setModal(true);
    044                    setTitle(title);
    045                    setTitleFont(new Font(Style.fontTypeface, Font.ITALIC, new Extent(13)));
    046                    setWidth(new Extent(753));
    047                    setHeight(new Extent(503));
    048                    setResizable(false);
    049                    setTitleBackground(Style.windowTitleBackground);
    050                    setStyleName("Default");
    051
    052                    tabbedPane.setOutsets(new Insets(10));
    053                    tabbedPane.setTabPlacement(Alignment.TOP);
    054                    tabbedPane.setBorder(new Border(1, Color.BLACK, Border.STYLE_INSET));
    055                    tabbedPane.setHeight(new Extent(400));
    056
    057                    add(tabbedPane);
    058            }
    059
    060            /**
    061             * Creates a new word editor window.
    062             *
    063             * @return The new word editor window.
    064             */
    065            public static WordEditorWindow createEditorWindow() {
    066                    return new WordEditorWindow("Word Editor");
    067            }
    068
    069            /**
    070             * Creates a new word creator window.
    071             *
    072             * @return The new word creator window.
    073             */
    074            public static WordEditorWindow createCreatorWindow() {
    075                    return new WordEditorWindow("Word Creator");
    076            }
    077
    078            /**
    079             * Adds a new tab to the window. The toString() value is used as the title of the tab.
    080             *
    081             * @param pane The pane that should be shown in the new tab.
    082             */
    083            public void addTab(ContentPane pane) {
    084                    DefaultTabModel tabModel = (DefaultTabModel) tabbedPane.getModel();
    085                    ButtonEx tab = new ButtonEx(pane.toString(), null);
    086                    tab.setStyle(DefaultTabModel.DEFAULT_TOP_ALIGNED_STYLE);
    087                    tab.setFont(new Font(Style.fontTypeface, Font.ITALIC, new Extent(13)));
    088                    tab.setInsets(new Insets(5, 2));
    089                    tabModel.addTab(tab, pane);
    090            }
    091
    092    }