OSDN Git Service

update ui
authortama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Sun, 7 Dec 2008 07:00:00 +0000 (07:00 +0000)
committertama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Sun, 7 Dec 2008 07:00:00 +0000 (07:00 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@343 acee48c3-7b26-0410-bdac-b3d0e5314bbc

src/main/java/jp/sourceforge/stigmata/ui/swing/ControlPane.java
src/main/java/jp/sourceforge/stigmata/ui/swing/GUIUtility.java
src/main/java/jp/sourceforge/stigmata/ui/swing/StigmataFrame.java
src/main/resources/resources/images/tab_close.png [new file with mode: 0644]
src/main/resources/resources/messages.properties

index 51f0966..d024442 100644 (file)
@@ -82,6 +82,8 @@ public class ControlPane extends JPanel{
         GUIUtility.addNewTab(stigmata.getMessages(), "wellknown", controlTab, wellknownClassses);
         GUIUtility.addNewTab(stigmata.getMessages(), "classpath", controlTab, classpath);
         GUIUtility.addNewTab(stigmata.getMessages(), "property", controlTab, properties);
+        controlTab.setSelectedIndex(0);
+
         reset();
     }
 
@@ -153,9 +155,11 @@ public class ControlPane extends JPanel{
         stigmata.setExpertMode(expertmode);
 
         if(expertmode){
+            int index = controlTab.getSelectedIndex();
             GUIUtility.addNewTab(stigmata.getMessages(), "definition", controlTab, definition);
             GUIUtility.addNewTab(stigmata.getMessages(), "filter", controlTab, filters);
             GUIUtility.addNewTab(stigmata.getMessages(), "history", controlTab, history);
+            controlTab.setSelectedIndex(index);
         }
         else{
             removeTabByName(stigmata.getMessages().get("definition.tab.label"));
@@ -299,7 +303,7 @@ public class ControlPane extends JPanel{
             bst = BirthmarkStoreTarget.MEMORY;
         }
         context.setStoreTarget(bst);
-        
+
         return context;
     }
 
index 3af8418..c35f72d 100644 (file)
@@ -5,7 +5,11 @@ package jp.sourceforge.stigmata.ui.swing;
  */
 
 import java.awt.Component;
+import java.awt.Dimension;
 import java.awt.Image;
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.net.URL;
@@ -17,10 +21,13 @@ import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JComponent;
+import javax.swing.JLabel;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
+import javax.swing.JPanel;
 import javax.swing.JTabbedPane;
 import javax.swing.border.TitledBorder;
+import javax.swing.border.EmptyBorder;
 
 import jp.sourceforge.talisman.i18n.Messages;
 
@@ -182,6 +189,12 @@ public class GUIUtility{
     }
 
     public static void addNewTab(Messages messages, String key, JTabbedPane tabPane, Component comp, Object[] tabnameValues, Object[] values){
+        addNewTab(messages, key, tabPane, comp, tabnameValues, values, false);
+    }
+
+    public static void addNewTab(Messages messages, String key, final JTabbedPane tabPane,
+                                 final Component comp, Object[] tabnameValues, Object[] values,
+                                 boolean closable){
         String tabName = messages.get(key + ".tab.label");
         String tooltip = messages.get(key + ".tab.tooltip");
         Icon icon = getIcon(messages, key + ".tab.icon");
@@ -194,5 +207,28 @@ public class GUIUtility{
             tooltip = MessageFormat.format(tooltip, values);
         }
         tabPane.addTab(tabName, icon, comp, tooltip);
+        tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
+        if(closable){
+            JLabel label = new JLabel(tabName);
+            if(icon != null){
+                label.setIcon(icon);
+            }
+            Icon closeIcon = getIcon(messages, "closetab.tabicon");
+            JButton button = new JButton(closeIcon);
+            button.setPreferredSize(new Dimension(closeIcon.getIconWidth(), closeIcon.getIconHeight()));
+            JPanel panel = new JPanel(new BorderLayout());
+            panel.setOpaque(false);
+            label.setBorder(new EmptyBorder(0, 0, 0, 4));
+            panel.add(label, BorderLayout.WEST);
+            panel.add(button, BorderLayout.EAST);
+            button.addActionListener(new ActionListener(){
+                public void actionPerformed(ActionEvent e){
+                    tabPane.remove(comp);
+                }
+            });
+            button.setBorder(new EmptyBorder(1, 1, 1, 1));
+            panel.setBorder(new EmptyBorder(2, 1, 1, 1));
+            tabPane.setTabComponentAt(tabPane.getTabCount() - 1, panel);
+        }
     }
 }
index a3aeeb0..c370fe1 100644 (file)
@@ -196,9 +196,8 @@ public class StigmataFrame extends JFrame{
                 Utility.array2String(target1.getBirthmarkTypes()),
                 target1.getName(),
                 target2.getName(),
-            }
+            }, true
         );
-        tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
     }
 
     public void compareRoundRobin(String[] targetX, String[] targetY, 
@@ -216,9 +215,8 @@ public class StigmataFrame extends JFrame{
                     Utility.array2String(context.getBirthmarkTypes()),
                     Utility.array2String(targetX),
                     Utility.array2String(targetY),
-                }
+                }, true
             );
-            tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
         } catch(Throwable e){
             showExceptionMessage(e);
         }
@@ -242,9 +240,8 @@ public class StigmataFrame extends JFrame{
                     Utility.array2String(context.getBirthmarkTypes()),
                     Utility.array2String(targetX),
                     Utility.array2String(targetY),
-                }
+                }, true
             );
-            tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
         } catch(Throwable e){
             showExceptionMessage(e);
         }
@@ -265,7 +262,7 @@ public class StigmataFrame extends JFrame{
                     Utility.array2String(context.getBirthmarkTypes()),
                     Utility.array2String(targetX),
                     Utility.array2String(targetY),
-                }
+                }, true
             );
             tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
         }catch(Throwable e){
@@ -296,9 +293,8 @@ public class StigmataFrame extends JFrame{
                         Utility.array2String(context.getBirthmarkTypes()),
                         Utility.array2String(targetX),
                         Utility.array2String(targetY),
-                    }
+                    }, true
                 );
-                tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
             }catch(Exception e){
                 showExceptionMessage(e);
             }
@@ -310,9 +306,8 @@ public class StigmataFrame extends JFrame{
         GUIUtility.addNewTab(
             getMessages(), "comparisonresultset", tabPane,
             new PairComparisonResultSetPane(this, resultset),
-            new Object[] { new Integer(comparePair), }, null
+            new Object[] { new Integer(comparePair), }, null, true
         );
-        tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
     }
 
     public void showMdsGraph(BirthmarkSet[] set, BirthmarkContext context){
@@ -321,9 +316,8 @@ public class StigmataFrame extends JFrame{
             int mappingGraphCount = getNextCount("mds_graph");
             GUIUtility.addNewTab(
                 getMessages(), "mappinggraph", tabPane, panel,
-                new Object[] { new Integer(mappingGraphCount), }, null
+                new Object[] { new Integer(mappingGraphCount), }, null, true
             );
-            tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
         } catch(Exception e){
             showExceptionMessage(e);
         }
@@ -335,9 +329,8 @@ public class StigmataFrame extends JFrame{
         int similarityGraphCount = getNextCount("similarity_graph");
         GUIUtility.addNewTab(
             getMessages(), "similaritygraph", tabPane, graph,
-            new Object[] { new Integer(similarityGraphCount), }, null
+            new Object[] { new Integer(similarityGraphCount), }, null, true
         );
-        tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
     }
 
     public void compareExtractionResult(ExtractionResultSet ers){
@@ -350,9 +343,8 @@ public class StigmataFrame extends JFrame{
                 Utility.array2String(ers.getBirthmarkTypes()),
                 Utility.array2String(new String[0]),
                 Utility.array2String(new String[0]),
-            }
+            }, true
         );
-        tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
     }
 
     public void showExtractionResult(ExtractionResultSet ers){
@@ -361,10 +353,8 @@ public class StigmataFrame extends JFrame{
         GUIUtility.addNewTab(
             getMessages(), "extract", tabPane, viewer,
             new Object[] { new Integer(extractCount), },
-            new Object[] { Utility.array2String(ers.getBirthmarkTypes()), }
+            new Object[] { Utility.array2String(ers.getBirthmarkTypes()), }, true
         );
-        tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
-        
     }
 
     public void extract(String[] targetX, String[] targetY, BirthmarkContext context){
@@ -424,7 +414,7 @@ public class StigmataFrame extends JFrame{
         setTitle(getMessages().get("stigmata.frame.title"));
         initComponents();
 
-        GUIUtility.addNewTab(getMessages(), "control", tabPane, control = new ControlPane(this), null, null);
+        GUIUtility.addNewTab(getMessages(), "control", tabPane, control = new ControlPane(this), null, null, false);
         control.inititalize();
         tabPane.setSelectedIndex(tabPane.getTabCount() - 1);
 
diff --git a/src/main/resources/resources/images/tab_close.png b/src/main/resources/resources/images/tab_close.png
new file mode 100644 (file)
index 0000000..352009d
Binary files /dev/null and b/src/main/resources/resources/images/tab_close.png differ
index 06ca5d6..77c4df2 100755 (executable)
@@ -67,6 +67,8 @@ closetab.menuitem.label=Close Tab
 closetab.menuteim.tooltip=Close current tab\r
 closetab.menuitem.icon=tab_delete.png\r
 \r
+closetab.tabicon=tab_close.png\r
+\r
 closeframe.menuitem.label=Close\r
 closeframe.menuitem.tooltip=Close current frame\r
 closeframe.menuitem.icon=delete.png\r