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 }