3 import java.awt.BorderLayout;
\r
4 import java.awt.Component;
\r
6 import javax.swing.JPanel;
\r
7 import javax.swing.JTabbedPane;
\r
10 public class VWMainWindow extends JPanel {
\r
12 private static final long serialVersionUID = 1L;
\r
17 public static enum MWinTab {
\r
27 CHCONV ("CHコンバート設定"),
\r
33 private MWinTab(String name) {
\r
37 public String getName() {
\r
41 public int getIndex() {
\r
45 public static MWinTab getAt(int index) {
\r
46 for ( MWinTab tab : MWinTab.values() ) {
\r
47 if ( tab.ordinal() == index ) {
\r
54 public static int size() { return MWinTab.values().length; }
\r
58 private final String SETTING_LIST = "設定一覧";
\r
64 private JTabbedPane jTabbedPane = null;
\r
65 private JTabbedPane jTabbedPane_settings = null;
\r
72 public VWMainWindow() {
\r
73 this.setLayout(new BorderLayout());
\r
74 this.add(getJTabbedPane(), BorderLayout.CENTER);
\r
75 getJTabbedPane_settings();
\r
78 for ( MWinTab tab : MWinTab.values() ) {
\r
79 if ( tab == MWinTab.SETTING ) {
\r
80 jTabbedPane.add(jTabbedPane_settings, SETTING_LIST);
\r
92 public void addToolBar(Component comp){
\r
93 this.add(comp, BorderLayout.PAGE_START);
\r
97 public void addStatusArea(Component comp) {
\r
98 this.add(comp, BorderLayout.PAGE_END);
\r
102 public boolean addTab(Component comp, MWinTab tab) {
\r
103 if ( jTabbedPane.getTabCount() + jTabbedPane_settings.getTabCount() < tab.getIndex() ) {
\r
104 System.err.println(String.format("[DEBUG][メインウィンドウ] タブの数があわない: %d/%d", jTabbedPane.getTabCount(), tab.getIndex()));
\r
108 int tabIndex = tab.getIndex();
\r
109 JTabbedPane tabPane = jTabbedPane;
\r
110 if ( tabIndex >= MWinTab.SETTING.getIndex() ) {
\r
111 tabIndex -= MWinTab.SETTING.getIndex();
\r
112 tabPane = jTabbedPane_settings;
\r
114 if ( tabPane.getTabCount() > tabIndex ) {
\r
115 tabPane.remove(tabIndex);
\r
117 tabPane.add(comp, tab.getName(), tabIndex);
\r
122 public void setSelectedTab(MWinTab tab) {
\r
123 if ( tab == null ) {
\r
124 jTabbedPane.setSelectedIndex(-1);
\r
127 if ( tab.getIndex() >= MWinTab.SETTING.getIndex() ) {
\r
128 jTabbedPane_settings.setSelectedIndex(tab.getIndex()-MWinTab.SETTING.getIndex());
\r
129 jTabbedPane.setSelectedIndex(MWinTab.SETTING.getIndex());
\r
132 jTabbedPane.setSelectedIndex(tab.getIndex());
\r
136 public Component getTab(MWinTab tab) {
\r
137 if ( tab.getIndex() >= MWinTab.SETTING.getIndex() ) {
\r
138 return jTabbedPane_settings.getComponent(tab.getIndex() - MWinTab.SETTING.getIndex());
\r
140 return jTabbedPane.getComponent(tab.getIndex());
\r
144 public boolean isTabSelected(MWinTab tab) {
\r
145 if ( tab.getIndex() >= MWinTab.SETTING.getIndex() ) {
\r
146 return (jTabbedPane.getSelectedIndex() == MWinTab.SETTING.getIndex() && jTabbedPane_settings.getSelectedIndex() == tab.getIndex()-MWinTab.SETTING.getIndex());
\r
148 return (jTabbedPane.getSelectedIndex() == tab.getIndex());
\r
152 public MWinTab getSelectedTab() {
\r
153 if ( jTabbedPane.getSelectedIndex() == MWinTab.SETTING.getIndex() ) {
\r
154 return MWinTab.getAt(jTabbedPane.getSelectedIndex());
\r
156 return MWinTab.getAt(jTabbedPane.getSelectedIndex());
\r
160 private final int firstSettingTab = MWinTab.SETTING.ordinal();
\r
161 private final int countSettingTab = MWinTab.size()-firstSettingTab;
\r
162 private Component[] st_comp = new Component[countSettingTab];
\r
163 private String[] st_title = new String[countSettingTab];
\r
164 public boolean toggleShowSettingTabs() {
\r
168 public boolean getShowSettingTabs() {
\r
171 public void setShowSettingTabs(boolean b) {
\r
179 private JTabbedPane getJTabbedPane() {
\r
180 if (jTabbedPane == null) {
\r
181 jTabbedPane = new JTabbedPane();
\r
183 return jTabbedPane;
\r
186 private JTabbedPane getJTabbedPane_settings() {
\r
187 if (jTabbedPane_settings == null) {
\r
188 jTabbedPane_settings = new JTabbedPane();
\r
190 return jTabbedPane_settings;
\r
196 public void appendStatusMessage(String s) {
\r
197 throw new UnsupportedOperationException();
\r
202 * @see Viewer#setStatusVisible(boolean)
\r
204 public void setStatusVisible(boolean b) {
\r
205 throw new UnsupportedOperationException();
\r