OSDN Git Service

enable filtering
authortama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Fri, 23 Mar 2007 05:54:15 +0000 (05:54 +0000)
committertama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Fri, 23 Mar 2007 05:54:15 +0000 (05:54 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@80 acee48c3-7b26-0410-bdac-b3d0e5314bbc

src/main/java/jp/naist/se/stigmata/filter/ComparisonPairFilterManager.java
src/main/java/jp/naist/se/stigmata/ui/swing/ControlPane.java
src/main/java/jp/naist/se/stigmata/ui/swing/FilterManagementPane.java
src/main/java/jp/naist/se/stigmata/ui/swing/FilterSelectionPane.java [new file with mode: 0755]
src/main/java/jp/naist/se/stigmata/ui/swing/filter/ComparisonPairFilterRetainable.java [new file with mode: 0755]
src/main/java/jp/naist/se/stigmata/ui/swing/filter/FilterSetDefinitionPane.java
src/main/resources/resources/messages.properties
src/main/resources/resources/messages_ja.source

index 93e21d0..f690e4c 100755 (executable)
@@ -44,7 +44,9 @@ public class ComparisonPairFilterManager{
         List<ComparisonPairFilterSet> list = new ArrayList<ComparisonPairFilterSet>();\r
         if(parent != null){\r
             for(ComparisonPairFilterSet fs: parent.getFilterSets()){\r
-                list.add(fs);\r
+                if(filters.get(fs.getName()) == null){\r
+                    list.add(fs);\r
+                }\r
             }\r
         }\r
         list.addAll(filters.values());\r
index 4a67547..b399bad 100755 (executable)
@@ -19,6 +19,7 @@ import javax.swing.BoxLayout;
 import javax.swing.JButton;\r
 import javax.swing.JComboBox;\r
 import javax.swing.JComponent;\r
+import javax.swing.JOptionPane;\r
 import javax.swing.JPanel;\r
 import javax.swing.JTabbedPane;\r
 import javax.swing.border.TitledBorder;\r
@@ -65,7 +66,7 @@ public class ControlPane extends JPanel{
         filters = new FilterManagementPane(stigmata);\r
 \r
         Utility.addNewTab("targets", controlTab, control);\r
-        Utility.addNewTab("filter",  controlTab, filters);\r
+        Utility.addNewTab("filter", controlTab, filters);\r
         Utility.addNewTab("wellknown", controlTab, wellknownClassses);\r
         Utility.addNewTab("classpath", controlTab, classpath);\r
         reset();\r
@@ -92,19 +93,22 @@ public class ControlPane extends JPanel{
         filters.reset();\r
         updateEnable();\r
 \r
-        int index1 = controlTab.indexOfTab(Messages.getString("definition.tab.label"));\r
+        int index1 = controlTab.indexOfTab(Messages\r
+                .getString("definition.tab.label"));\r
         if(index1 >= 0){\r
             controlTab.removeTabAt(index1);\r
         }\r
-        int index2 = controlTab.indexOfTab(Messages.getString("property.tab.label"));\r
+        int index2 = controlTab.indexOfTab(Messages\r
+                .getString("property.tab.label"));\r
         if(index2 >= 0){\r
             controlTab.removeTabAt(index2);\r
         }\r
     }\r
 \r
     public void exportSettings(){\r
-        File file = stigmata.getSaveFile(Messages.getStringArray("export.extensions"),\r
-            Messages.getString("export.description"));\r
+        File file = stigmata.getSaveFile(Messages\r
+                .getStringArray("export.extensions"), Messages\r
+                .getString("export.description"));\r
         if(file != null){\r
             if(!file.getName().endsWith(".xml")){\r
                 file = new File(file.getParent(), file.getName() + ".xml");\r
@@ -120,7 +124,7 @@ public class ControlPane extends JPanel{
                 properties.exportSettings(out);\r
                 out.println("</stigmata>");\r
                 out.close();\r
-            } catch(IOException e){\r
+            }catch(IOException e){\r
             }\r
         }\r
     }\r
@@ -159,15 +163,22 @@ public class ControlPane extends JPanel{
         targetX = new TargetSelectionPane(stigmata);\r
         targetY = new TargetSelectionPane(stigmata);\r
 \r
-        birthmarks.setBorder(new TitledBorder(Messages.getString("birthmarkspane.border")));\r
+        birthmarks.setBorder(new TitledBorder(Messages\r
+                .getString("birthmarkspane.border")));\r
 \r
-        targetX.addTargetExtensions(Messages.getStringArray("targets.extensions"));\r
+        targetX.addTargetExtensions(Messages\r
+                .getStringArray("targets.extensions"));\r
         targetX.setDescription(Messages.getString("targets.description"));\r
-        targetX.setBorder(new TitledBorder(Messages.getString("targetx.border")));\r
+        targetX\r
+                .setBorder(new TitledBorder(Messages\r
+                        .getString("targetx.border")));\r
 \r
-        targetY.addTargetExtensions(Messages.getStringArray("targets.extensions"));\r
+        targetY.addTargetExtensions(Messages\r
+                .getStringArray("targets.extensions"));\r
         targetY.setDescription(Messages.getString("targets.description"));\r
-        targetY.setBorder(new TitledBorder(Messages.getString("targety.border")));\r
+        targetY\r
+                .setBorder(new TitledBorder(Messages\r
+                        .getString("targety.border")));\r
 \r
         center.add(mainPane, BorderLayout.CENTER);\r
         center.add(birthmarks, BorderLayout.SOUTH);\r
@@ -195,13 +206,13 @@ public class ControlPane extends JPanel{
         String[] valueY = targetY.getValues();\r
         String[] targets = birthmarks.getSelectedServices();\r
 \r
-        extractButton.setEnabled(((valueX != null && valueX.length > 0)\r
-                                  || (valueY != null && valueY.length > 0))\r
-                                 && (targets != null && targets.length > 0));\r
+        extractButton\r
+                .setEnabled(((valueX != null && valueX.length > 0) || (valueY != null && valueY.length > 0))\r
+                        && (targets != null && targets.length > 0));\r
 \r
         compareButton.setEnabled((valueX != null && valueX.length > 0)\r
-                                 && (valueY != null && valueY.length > 0)\r
-                                 && (targets != null && targets.length > 0));\r
+                && (valueY != null && valueY.length > 0)\r
+                && (targets != null && targets.length > 0));\r
     }\r
 \r
     private void extractButtonActionPerformed(ActionEvent e){\r
@@ -220,30 +231,43 @@ public class ControlPane extends JPanel{
             }\r
         }\r
 \r
-        stigmata.extract(birthmarks.getSelectedServices(),\r
-                         targets.toArray(new String[targets.size()]), context);\r
+        stigmata.extract(birthmarks.getSelectedServices(), targets\r
+                .toArray(new String[targets.size()]), context);\r
     }\r
 \r
     private void compareRoundRobinWithFiltering(){\r
         BirthmarkContext context = initAction();\r
-        String[] filterSetList = filters.getSelectedFilterNames();\r
-\r
-        stigmata.compareRoundRobin(birthmarks.getSelectedServices(), targetX.getValues(), \r
-                                   targetY.getValues(), filterSetList, context);\r
+        FilterSelectionPane pane = new FilterSelectionPane(\r
+            context.getFilterManager()\r
+        );\r
+        int returnValue = JOptionPane.showConfirmDialog(\r
+            stigmata, pane, Messages.getString("filterselection.dialog.title"),\r
+            JOptionPane.OK_CANCEL_OPTION,\r
+            JOptionPane.QUESTION_MESSAGE\r
+        );\r
+        if(returnValue == JOptionPane.OK_OPTION){\r
+            String[] filterSetList = pane.getSelectedFilters();\r
+\r
+            stigmata.compareRoundRobin(\r
+                birthmarks.getSelectedServices(), targetX.getValues(),\r
+                targetY.getValues(), filterSetList, context\r
+            );\r
+        }\r
     }\r
 \r
     private void compareRoundRobin(){\r
         BirthmarkContext context = initAction();\r
 \r
-        stigmata.compareRoundRobin(birthmarks.getSelectedServices(),\r
-                                   targetX.getValues(), targetY.getValues(), context);\r
+        stigmata.compareRoundRobin(birthmarks.getSelectedServices(), targetX\r
+                .getValues(), targetY.getValues(), context);\r
     }\r
 \r
     private void compareSpecifiedPair(){\r
         BirthmarkContext context = initAction();\r
         String[] fileX = targetX.getValues();\r
         String[] fileY = targetY.getValues();\r
-        stigmata.compareSpecifiedPair(birthmarks.getSelectedServices(), fileX, fileY, context);\r
+        stigmata.compareSpecifiedPair(birthmarks.getSelectedServices(), fileX,\r
+                fileY, context);\r
     }\r
 \r
     private void compareGuessedPair(){\r
@@ -251,7 +275,8 @@ public class ControlPane extends JPanel{
         String[] fileX = targetX.getValues();\r
         String[] fileY = targetY.getValues();\r
 \r
-        stigmata.compareGuessedPair(birthmarks.getSelectedServices(), fileX, fileY, context);\r
+        stigmata.compareGuessedPair(birthmarks.getSelectedServices(), fileX,\r
+                fileY, context);\r
     }\r
 \r
     private BirthmarkContext initAction(){\r
@@ -323,7 +348,8 @@ public class ControlPane extends JPanel{
                 else if(item.equals(Messages.getString("specifiedpair.label"))){\r
                     compareSpecifiedPair();\r
                 }\r
-                else if(item.equals(Messages.getString("roundrobin.filtering.label"))){\r
+                else if(item.equals(Messages\r
+                        .getString("roundrobin.filtering.label"))){\r
                     compareRoundRobinWithFiltering();\r
                 }\r
             }\r
index 78b8b17..38c3f0d 100755 (executable)
@@ -5,7 +5,6 @@ package jp.naist.se.stigmata.ui.swing;
  */\r
 \r
 import java.awt.BorderLayout;\r
-import java.awt.Component;\r
 import java.awt.GridLayout;\r
 import java.awt.event.ActionEvent;\r
 import java.awt.event.ActionListener;\r
@@ -13,30 +12,23 @@ import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;\r
 import java.io.IOException;\r
 import java.io.PrintWriter;\r
-import java.util.ArrayList;\r
 import java.util.HashMap;\r
-import java.util.List;\r
 import java.util.Map;\r
 \r
 import javax.swing.Box;\r
 import javax.swing.DefaultListModel;\r
 import javax.swing.JButton;\r
-import javax.swing.JCheckBox;\r
 import javax.swing.JComponent;\r
-import javax.swing.JLabel;\r
 import javax.swing.JList;\r
 import javax.swing.JPanel;\r
 import javax.swing.JScrollPane;\r
-import javax.swing.ListCellRenderer;\r
-import javax.swing.UIManager;\r
-import javax.swing.border.Border;\r
-import javax.swing.border.EmptyBorder;\r
 import javax.swing.event.ListSelectionEvent;\r
 import javax.swing.event.ListSelectionListener;\r
 \r
 import jp.naist.se.stigmata.ComparisonPairFilter;\r
 import jp.naist.se.stigmata.ComparisonPairFilterSet;\r
 import jp.naist.se.stigmata.filter.ComparisonPairFilterManager;\r
+import jp.naist.se.stigmata.ui.swing.filter.ComparisonPairFilterRetainable;\r
 import jp.naist.se.stigmata.ui.swing.filter.FilterEditingPane;\r
 import jp.naist.se.stigmata.ui.swing.filter.FilterSetDefinitionPane;\r
 \r
@@ -46,9 +38,8 @@ import org.apache.commons.beanutils.BeanUtils;
  * @author Haruaki TAMADA\r
  * @version $Revision$ $Date$\r
  */\r
-public class FilterManagementPane extends JPanel implements SettingsExportable{\r
+public class FilterManagementPane extends JPanel implements SettingsExportable, ComparisonPairFilterRetainable{\r
     private static final long serialVersionUID = 972135792354L;\r
-    private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);\r
 \r
     private StigmataFrame stigmata;\r
     private FilterSetDefinitionPane definition;\r
@@ -56,7 +47,6 @@ public class FilterManagementPane extends JPanel implements SettingsExportable{
     private JList list;\r
     private DefaultListModel model;\r
     private Map<String, ComparisonPairFilterSet> filters = new HashMap<String, ComparisonPairFilterSet>();\r
-    private Map<String, Boolean> enableMap = new HashMap<String, Boolean>();\r
 \r
     public FilterManagementPane(StigmataFrame stigmata){\r
         this.stigmata = stigmata;\r
@@ -118,19 +108,8 @@ public class FilterManagementPane extends JPanel implements SettingsExportable{
         }\r
     }\r
 \r
-    public synchronized String[] getSelectedFilterNames(){\r
-        List<String> list = new ArrayList<String>();\r
-        for(String key: enableMap.keySet()){\r
-            if(enableMap.get(key)){\r
-                list.add(key);\r
-            }\r
-        }\r
-        return list.toArray(new String[list.size()]);\r
-    }\r
-\r
     public void addFilterSet(ComparisonPairFilterSet filterset){\r
         filters.put(filterset.getName(), filterset);\r
-        enableMap.put(filterset.getName(), Boolean.TRUE);\r
 \r
         model.addElement(filterset.getName());\r
         list.setSelectedIndex(model.getSize() - 1);\r
@@ -138,7 +117,6 @@ public class FilterManagementPane extends JPanel implements SettingsExportable{
 \r
     public void removeFilterSet(String name){\r
         filters.remove(name);\r
-        enableMap.remove(name);\r
         model.removeElement(name);\r
 \r
         list.clearSelection();\r
@@ -152,16 +130,7 @@ public class FilterManagementPane extends JPanel implements SettingsExportable{
             }\r
         }\r
         filters.remove(oldName);\r
-        Boolean flag = enableMap.remove(oldName);\r
         filters.put(newfilter.getName(), newfilter);\r
-        enableMap.put(newfilter.getName(), flag);\r
-    }\r
-\r
-    public ComparisonPairFilterSet getEnableFilterSet(String name){\r
-        if(enableMap.get(name)){\r
-            return getFilterSet(name);\r
-        }\r
-        return null;\r
     }\r
 \r
     public ComparisonPairFilterSet getFilterSet(String name){\r
@@ -201,7 +170,6 @@ public class FilterManagementPane extends JPanel implements SettingsExportable{
     private JComponent createFilterSetPane(){\r
         model = new DefaultListModel();\r
         list = new JList(model);\r
-        list.setCellRenderer(new CheckedListCellRenderer());\r
 \r
         final JButton upButton = Utility.createButton("moveup");\r
         final JButton downButton = Utility.createButton("movedown");\r
@@ -218,8 +186,6 @@ public class FilterManagementPane extends JPanel implements SettingsExportable{
             public void mouseClicked(MouseEvent e){\r
                 int index = list.locationToIndex(e.getPoint());\r
                 list.setSelectedIndex(index);\r
-                String v = (String)model.getElementAt(index);\r
-                enableMap.put(v, !enableMap.get(v));\r
                 updateUI();\r
             }\r
         });\r
@@ -263,45 +229,4 @@ public class FilterManagementPane extends JPanel implements SettingsExportable{
         \r
         return panel;\r
     }\r
-\r
-    private class CheckedListCellRenderer extends JPanel implements ListCellRenderer{\r
-        private static final long serialVersionUID = -8148037001055727351L;\r
-\r
-        private JCheckBox check;\r
-        private JLabel label;\r
-\r
-        public CheckedListCellRenderer(){\r
-            setOpaque(true);\r
-            setLayout(new BorderLayout());\r
-            add(check = new JCheckBox(), BorderLayout.WEST);\r
-            add(label = new JLabel(), BorderLayout.CENTER);\r
-        }\r
-\r
-        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus){\r
-            label.setText(String.valueOf(value));\r
-            check.setSelected(enableMap.get(value));\r
-\r
-            setBackground(isSelected ? list.getSelectionBackground(): list.getBackground());\r
-            check.setBackground(isSelected ? list.getSelectionBackground(): list.getBackground());\r
-            check.setForeground(isSelected ? list.getSelectionForeground(): list.getForeground());\r
-            label.setBackground(isSelected ? list.getSelectionBackground(): list.getBackground());\r
-            label.setForeground(isSelected ? list.getSelectionForeground(): list.getForeground());\r
-\r
-            Border border = null;\r
-            if(cellHasFocus){\r
-                if(isSelected){\r
-                    border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");\r
-                }\r
-                if(border == null){\r
-                    border = UIManager.getBorder("List.focusCellHighlightBorder");\r
-                }\r
-            }\r
-            else{\r
-                border = noFocusBorder;\r
-            }\r
-            setBorder(border);\r
-\r
-            return this;\r
-        }\r
-    }\r
 }\r
diff --git a/src/main/java/jp/naist/se/stigmata/ui/swing/FilterSelectionPane.java b/src/main/java/jp/naist/se/stigmata/ui/swing/FilterSelectionPane.java
new file mode 100755 (executable)
index 0000000..e4124c1
--- /dev/null
@@ -0,0 +1,174 @@
+package jp.naist.se.stigmata.ui.swing;\r
+\r
+/*\r
+ * $Id$\r
+ */\r
+\r
+import java.awt.BorderLayout;\r
+import java.awt.Component;\r
+import java.awt.event.MouseAdapter;\r
+import java.awt.event.MouseEvent;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import javax.swing.DefaultListModel;\r
+import javax.swing.JCheckBox;\r
+import javax.swing.JList;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.ListCellRenderer;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.UIManager;\r
+import javax.swing.border.Border;\r
+import javax.swing.border.EmptyBorder;\r
+import javax.swing.event.ListSelectionEvent;\r
+import javax.swing.event.ListSelectionListener;\r
+\r
+import jp.naist.se.stigmata.ComparisonPairFilter;\r
+import jp.naist.se.stigmata.ComparisonPairFilterSet;\r
+import jp.naist.se.stigmata.filter.ComparisonPairFilterManager;\r
+import jp.naist.se.stigmata.ui.swing.filter.ComparisonPairFilterRetainable;\r
+import jp.naist.se.stigmata.ui.swing.filter.FilterSetDefinitionPane;\r
+\r
+/**\r
+ * \r
+ * @author Haruaki TAMADA\r
+ * @version $Revision$ $Date$\r
+ */\r
+public class FilterSelectionPane extends JPanel implements ComparisonPairFilterRetainable{\r
+    private static final long serialVersionUID = 1825547576389498336L;\r
+    private static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);\r
+\r
+    private ComparisonPairFilterManager manager;\r
+    private FilterSetDefinitionPane filterDef;\r
+    private Map<String, Boolean> enableMap = new HashMap<String, Boolean>();\r
+    private Map<String, ComparisonPairFilterSet> filters = new HashMap<String, ComparisonPairFilterSet>(); \r
+    private DefaultListModel model;\r
+    private JList list;\r
+\r
+    public FilterSelectionPane(ComparisonPairFilterManager manager){\r
+        this.manager = manager;\r
+\r
+        initLayout();\r
+    }\r
+\r
+    public void addFilterSet(ComparisonPairFilterSet filter){\r
+        filters.put(filter.getName(), filter);\r
+        enableMap.put(filter.getName(), false);\r
+        model.addElement(filter.getName());\r
+    }\r
+\r
+    public void filterSelected(ComparisonPairFilter filter){\r
+    }\r
+\r
+    public ComparisonPairFilterSet getFilterSet(String name){\r
+        return filters.get(name);\r
+    }\r
+\r
+    public void removeFilterSet(String name){\r
+        filters.remove(name);\r
+        enableMap.remove(name);\r
+        model.removeElement(name);\r
+    }\r
+\r
+    public void updateFilterSet(String name, ComparisonPairFilterSet filter){\r
+        int index = model.indexOf(name);\r
+        model.set(index, filter.getName());\r
+        filters.put(filter.getName(), filter);\r
+        enableMap.put(filter.getName(), enableMap.get(name));\r
+\r
+        if(!name.equals(filter.getName())){\r
+            enableMap.remove(name);\r
+            filters.remove(name);\r
+        }\r
+    }\r
+\r
+    public String[] getSelectedFilters(){\r
+        List<String> list = new ArrayList<String>();\r
+        for(String key: enableMap.keySet()){\r
+            if(enableMap.get(key)){\r
+                list.add(key);\r
+            }\r
+        }\r
+        return list.toArray(new String[list.size()]);\r
+    }\r
+\r
+    private void initLayout(){\r
+        setLayout(new BorderLayout());\r
+        model = new DefaultListModel();\r
+        list = new JList(model);\r
+        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+        list.setCellRenderer(new CheckableListCellRenderer());\r
+\r
+        JScrollPane scroll = new JScrollPane(list);\r
+        filterDef = new FilterSetDefinitionPane(this, false);\r
+\r
+        add(scroll, BorderLayout.WEST);\r
+        add(filterDef, BorderLayout.CENTER);\r
+\r
+        list.addListSelectionListener(new ListSelectionListener(){\r
+            public void valueChanged(ListSelectionEvent e){\r
+                String name = (String)list.getSelectedValue();\r
+                filterDef.setFilterSet(filters.get(name));\r
+                \r
+                updateUI();\r
+            }\r
+        });\r
+        list.addMouseListener(new MouseAdapter(){\r
+            @Override\r
+            public void mouseClicked(MouseEvent e){\r
+                int index = list.locationToIndex(e.getPoint());\r
+                String value = (String)model.getElementAt(index);\r
+                enableMap.put(value, !enableMap.get(value));\r
+                updateUI();\r
+            }\r
+        });\r
+\r
+        for(ComparisonPairFilterSet filterset: manager.getFilterSets()){\r
+            enableMap.put(filterset.getName(), false);\r
+            filters.put(filterset.getName(), filterset);\r
+            model.addElement(filterset.getName());\r
+        }\r
+    }\r
+\r
+    private class CheckableListCellRenderer extends JCheckBox implements ListCellRenderer{\r
+        private static final long serialVersionUID = 2120743754620361163L;\r
+\r
+        public CheckableListCellRenderer(){\r
+            setOpaque(true);\r
+        }\r
+\r
+        public Component getListCellRendererComponent(JList list, Object v, int index, boolean isSelected, boolean cellHasFocus){\r
+            String value = (String)v;\r
+            setText(value);\r
+            setSelected(enableMap.get(value));\r
+\r
+            if(isSelected){\r
+                setBackground(list.getSelectionBackground());\r
+                setForeground(list.getSelectionForeground());\r
+            }\r
+            else{\r
+                setBackground(list.getBackground());\r
+                setForeground(list.getForeground());\r
+            }\r
+            Border border = null;\r
+            if(cellHasFocus){\r
+                if(isSelected){\r
+                    border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");\r
+                }\r
+                if(border == null){\r
+                    border = UIManager.getBorder("List.focusCellHighlightBorder");\r
+                }\r
+            }\r
+            else{\r
+                border = noFocusBorder;\r
+            }\r
+            setBorder(border);            \r
+\r
+            return this;\r
+        }\r
+        \r
+    }\r
+}\r
diff --git a/src/main/java/jp/naist/se/stigmata/ui/swing/filter/ComparisonPairFilterRetainable.java b/src/main/java/jp/naist/se/stigmata/ui/swing/filter/ComparisonPairFilterRetainable.java
new file mode 100755 (executable)
index 0000000..0bf456e
--- /dev/null
@@ -0,0 +1,15 @@
+package jp.naist.se.stigmata.ui.swing.filter;\r
+\r
+import jp.naist.se.stigmata.ComparisonPairFilter;\r
+import jp.naist.se.stigmata.ComparisonPairFilterSet;\r
+\r
+public interface ComparisonPairFilterRetainable{\r
+    public void filterSelected(ComparisonPairFilter filter);\r
+\r
+    public void addFilterSet(ComparisonPairFilterSet filter);\r
+    public void removeFilterSet(String name);\r
+\r
+    public void updateFilterSet(String name, ComparisonPairFilterSet filter);\r
+\r
+    public ComparisonPairFilterSet getFilterSet(String name);\r
+}\r
index 1415fc5..234d17e 100755 (executable)
@@ -22,20 +22,20 @@ import javax.swing.event.ListSelectionListener;
 \r
 import jp.naist.se.stigmata.ComparisonPairFilter;\r
 import jp.naist.se.stigmata.ComparisonPairFilterSet;\r
-import jp.naist.se.stigmata.ui.swing.FilterManagementPane;\r
 import jp.naist.se.stigmata.ui.swing.Messages;\r
 import jp.naist.se.stigmata.ui.swing.Utility;\r
 \r
 public class FilterSetDefinitionPane extends JPanel implements ComparisonPairFilterListener{\r
     private static final long serialVersionUID = 7519306603672717119L;\r
 \r
-    private FilterManagementPane manager;\r
+    private ComparisonPairFilterRetainable manager;\r
 \r
     private JTextField name;\r
     private JRadioButton matchall, matchany;\r
     private JList list;\r
     private DefaultListModel model;\r
     private ComparisonPairFilterSet filterset;\r
+    private boolean buttonShown = true;\r
 \r
     private JButton addfilter;\r
     private JButton updatefilter;\r
@@ -43,10 +43,14 @@ public class FilterSetDefinitionPane extends JPanel implements ComparisonPairFil
     private JButton upButton;\r
     private JButton downButton;\r
     \r
-    public FilterSetDefinitionPane(FilterManagementPane manager){\r
+    public FilterSetDefinitionPane(ComparisonPairFilterRetainable manager){\r
+        this(manager, true);\r
+    }\r
+\r
+    public FilterSetDefinitionPane(ComparisonPairFilterRetainable manager, boolean showButtons){\r
         this.manager = manager;\r
         \r
-        initLayouts();\r
+        initLayouts(showButtons);\r
     }\r
 \r
     public void reset(){\r
@@ -87,7 +91,18 @@ public class FilterSetDefinitionPane extends JPanel implements ComparisonPairFil
         updateButtonEnabled();\r
     }\r
 \r
-    private void initLayouts(){\r
+    public void setEnabled(boolean flag){\r
+        super.setEnabled(flag);\r
+\r
+        matchall.setEnabled(flag);\r
+        matchany.setEnabled(flag);\r
+        name.setEnabled(flag);\r
+        list.setEnabled(flag);\r
+    }\r
+\r
+    private void initLayouts(boolean showButtons){\r
+        this.buttonShown = showButtons;\r
+\r
         ButtonGroup group = new ButtonGroup();\r
         matchall = new JRadioButton(Messages.getString("matchall.button.label"), true);\r
         matchall.setToolTipText(Messages.getString("matchall.button.tooltip"));\r
@@ -200,23 +215,29 @@ public class FilterSetDefinitionPane extends JPanel implements ComparisonPairFil
         setLayout(new BorderLayout());\r
         add(north, BorderLayout.NORTH);\r
         add(listpane, BorderLayout.CENTER);\r
-        add(south, BorderLayout.SOUTH);\r
+        if(showButtons){\r
+            add(south, BorderLayout.SOUTH);\r
+        }\r
 \r
         Utility.decorateJComponent(name, "filtername");\r
         Utility.decorateJComponent(listpane, "filterorder");\r
 \r
+        setEnabled(buttonShown);\r
+\r
         updateButtonEnabled();\r
     }\r
 \r
     private void updateButtonEnabled(){\r
-        int index = list.getSelectedIndex();\r
-        int size = model.getSize();\r
-\r
-        upButton.setEnabled(size > 1 && index > 0);\r
-        downButton.setEnabled(size > 1 && index < (size - 1));\r
-        updatefilter.setEnabled(filterset != null);\r
-        addfilter.setEnabled(size > 0 && name.getText().length() > 0 && manager.getFilterSet(name.getText()) == null);\r
-        removefilter.setEnabled(filterset != null);\r
+        if(buttonShown){\r
+            int index = list.getSelectedIndex();\r
+            int size = model.getSize();\r
+\r
+            upButton.setEnabled(size > 1 && index > 0);\r
+            downButton.setEnabled(size > 1 && index < (size - 1));\r
+            updatefilter.setEnabled(filterset != null);\r
+            addfilter.setEnabled(size > 0 && name.getText().length() > 0 && manager.getFilterSet(name.getText()) == null);\r
+            removefilter.setEnabled(filterset != null);\r
+        }\r
     }\r
 \r
     private ComparisonPairFilterSet createCurrentFilterSet(){\r
index 0db14ac..139f0c5 100755 (executable)
@@ -314,6 +314,8 @@ propertyadd.dialog.title=New property
 filter.tab.label=Comparison result filters\r
 filter.tab.tooltip=View/Edit filters of comparison result\r
 \r
+filterselection.dialog.title=Select filters\r
+\r
 filtersetlist.pane.border=FilterSet list\r
 filtersetlist.pane.tooltip=\r
 filterdefinition.pane.border=FilterSet\r
index fe44318..7a6c27c 100755 (executable)
@@ -266,6 +266,8 @@ propertyadd.dialog.title=
 ############################################################\r
 filter.tab.label=\83t\83B\83\8b\83^\r
 filter.tab.tooltip=\83t\83B\83\8b\83^\r
+filterselection.dialog.title=\93K\97p\82·\82é\83t\83B\83\8b\83^\82Ì\91I\91ð\r
+\r
 filtersetlist.pane.border=\92è\8b`\8dÏ\82Ý\83t\83B\83\8b\83^\83Z\83b\83g\r
 filtersetlist.pane.tooltip=\92è\8b`\8dÏ\82Ý\82Ì\83t\83B\83\8b\83^\83Z\83b\83g\82Ì\8fW\8d\87\r
 filterdefinition.pane.border=\83t\83B\83\8b\83^\83Z\83b\83g\82Ì\92è\8b`\r