import java.awt.event.ActionListener;\r
import java.awt.event.ItemEvent;\r
import java.awt.event.ItemListener;\r
+import java.io.IOException;\r
+import java.io.PrintWriter;\r
import java.util.ArrayList;\r
import java.util.HashMap;\r
import java.util.Iterator;\r
}\r
}\r
\r
+ public void exportSettings(PrintWriter out) throws IOException{\r
+ out.println(" <services>");\r
+ for(String key: services.keySet()){\r
+ BirthmarkSpi service = services.get(key);\r
+ // not expert birthmarks are defined as class.\r
+ if(service.isExpert()){\r
+ out.println(" <service>");\r
+ out.print(" <type>");\r
+ out.print(service.getType());\r
+ out.println("</type>");\r
+ out.print(" <display-name>");\r
+ out.print(service.getDisplayType());\r
+ out.println("</display-name>");\r
+ out.print(" <description>");\r
+ out.print(service.getDescription());\r
+ out.println("</description>");\r
+ out.print(" <extractor>");\r
+ out.print(service.getExtractorClassName());\r
+ out.println("</extractor>");\r
+ out.print(" <comparator>");\r
+ out.print(service.getComparatorClassName());\r
+ out.println("</comparator>");\r
+ out.println(" </service>");\r
+ }\r
+ }\r
+ out.println(" </services>");\r
+ }\r
+\r
private void initData(){\r
information.initData();\r
model.addElement(Messages.getString("newservice.definition.label"));\r
import java.awt.event.ActionListener;\r
import java.io.File;\r
import java.io.IOException;\r
+import java.io.PrintWriter;\r
\r
import javax.swing.Box;\r
import javax.swing.JButton;\r
initLayouts();\r
}\r
\r
+ public void exportSettings(PrintWriter out) throws IOException{\r
+ String[] cplist = classpath.getValues();\r
+ if(cplist != null && cplist.length > 0){\r
+ out.println(" <classpath-list>");\r
+ for(int i = 0; i < cplist.length; i++){\r
+ out.print("<classpath>");\r
+ out.print(cplist[i]);\r
+ out.println("</classpath>");\r
+ }\r
+ out.println(" </classpath-list>");\r
+ }\r
+ }\r
+\r
public void updateClasspathContext(ClasspathContext context){\r
String[] cplist = classpath.getValues();\r
if(cplist != null && cplist.length >= 0){\r
import java.awt.BorderLayout;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ActionListener;\r
+import java.io.File;\r
+import java.io.FileWriter;\r
+import java.io.IOException;\r
+import java.io.PrintWriter;\r
import java.util.HashSet;\r
import java.util.Set;\r
\r
}\r
}\r
\r
+ public void exportSettings(){\r
+ File file = stigmata.getSaveFile(Messages.getStringArray("export.extensions"),\r
+ Messages.getString("export.description"));\r
+ if(file != null){\r
+ if(!file.getName().endsWith(".xml")){\r
+ file = new File(file.getParent(), file.getName() + ".xml");\r
+ }\r
+ try{\r
+ PrintWriter out = new PrintWriter(new FileWriter(file));\r
+ out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");\r
+ out.println("<birthmark>");\r
+ definition.exportSettings(out);\r
+ wellknownClassses.exportSettings(out);\r
+ classpath.exportSettings(out);\r
+ // properties.exportSettings(out);\r
+ out.println("</birthmark>");\r
+ out.close();\r
+ } catch(IOException e){\r
+ }\r
+ }\r
+ }\r
+\r
public void setGeekMode(boolean geekmode){\r
this.geekmode = geekmode;\r
birthmarks.setGeekMode(geekmode);\r
private static final long serialVersionUID = 3298346465652354302L;\r
\r
private StigmataFrame frame;\r
-\r
private BirthmarkContext context;\r
-\r
private DefaultTableModel model = new PairComparisonResultSetTableModel();\r
-\r
private JTable table = new JTable(model);\r
-\r
private JLabel averageLabel, maximumLabel, minimumLabel;\r
-\r
private List<ComparisonPair> list = new ArrayList<ComparisonPair>();\r
-\r
private double average, maximum, minimum;\r
\r
public PairComparisonResultSetPane(StigmataFrame frame, ComparisonResultSet resultset){\r
private JMenu createFileMenu(){\r
JMenu fileMenu = Utility.createJMenu("fileMenu");\r
JMenuItem newFrameMenu = Utility.createJMenuItem("newframe");\r
+ JMenuItem exportMenu = Utility.createJMenuItem("exportsetting");\r
JMenuItem closeTabMenu = Utility.createJMenuItem("closetab");\r
JMenuItem closeMenu = Utility.createJMenuItem("closeframe");\r
JMenuItem exitMenu = Utility.createJMenuItem("exit");\r
\r
fileMenu.add(newFrameMenu);\r
fileMenu.add(new JSeparator());\r
+ fileMenu.add(exportMenu);\r
+ fileMenu.add(new JSeparator());\r
fileMenu.add(closeTabMenu);\r
fileMenu.add(closeMenu);\r
fileMenu.add(new JSeparator());\r
fileMenu.add(exitMenu);\r
\r
- newFrameMenu.addActionListener(new java.awt.event.ActionListener(){\r
- public void actionPerformed(java.awt.event.ActionEvent evt){\r
+ newFrameMenu.addActionListener(new ActionListener(){\r
+ public void actionPerformed(ActionEvent evt){\r
newFrameMenuActionPerformed(evt);\r
}\r
});\r
+ exportMenu.addActionListener(new ActionListener(){\r
+ public void actionPerformed(ActionEvent e){\r
+ control.exportSettings();\r
+ }\r
+ });\r
\r
- closeTabMenu.addActionListener(new java.awt.event.ActionListener(){\r
- public void actionPerformed(java.awt.event.ActionEvent evt){\r
+ closeTabMenu.addActionListener(new ActionListener(){\r
+ public void actionPerformed(ActionEvent evt){\r
closeTabMenuActionPerformed();\r
}\r
});\r
\r
- closeMenu.addActionListener(new java.awt.event.ActionListener(){\r
- public void actionPerformed(java.awt.event.ActionEvent evt){\r
+ closeMenu.addActionListener(new ActionListener(){\r
+ public void actionPerformed(ActionEvent evt){\r
closeMenuActionPerformed(evt);\r
}\r
});\r
\r
- exitMenu.addActionListener(new java.awt.event.ActionListener(){\r
- public void actionPerformed(java.awt.event.ActionEvent evt){\r
- exitMenuActionPerformed(evt);\r
+ exitMenu.addActionListener(new ActionListener(){\r
+ public void actionPerformed(ActionEvent evt){\r
+ System.exit(0);\r
}\r
});\r
return fileMenu;\r
return null;\r
}\r
\r
- private void formWindowClosed(java.awt.event.WindowEvent evt){\r
+ private void formWindowClosed(WindowEvent evt){\r
frameList.remove(this);\r
if(frameList.size() == 0){\r
System.exit(1);\r
}\r
}\r
\r
- private void closeMenuActionPerformed(java.awt.event.ActionEvent evt){\r
+ private void closeMenuActionPerformed(ActionEvent evt){\r
setVisible(false);\r
dispose();\r
\r
}\r
}\r
\r
- private void exitMenuActionPerformed(java.awt.event.ActionEvent evt){\r
- System.exit(1);\r
- }\r
-\r
- private void newFrameMenuActionPerformed(java.awt.event.ActionEvent evt){\r
+ private void newFrameMenuActionPerformed(ActionEvent evt){\r
StigmataFrame frame = new StigmataFrame(stigmata, context);\r
frame.setVisible(true);\r
}\r
import java.awt.GridLayout;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ActionListener;\r
+import java.io.IOException;\r
+import java.io.PrintWriter;\r
\r
import javax.swing.Box;\r
import javax.swing.DefaultCellEditor;\r
import javax.swing.table.TableColumn;\r
import javax.swing.table.TableColumnModel;\r
\r
-import jp.naist.se.stigmata.utils.WellknownClassManager;\r
import jp.naist.se.stigmata.utils.WellknownClassJudgeRule;\r
+import jp.naist.se.stigmata.utils.WellknownClassManager;\r
\r
/**\r
* @author Haruaki TAMADA\r
private static final long serialVersionUID = 329734546345634532L;\r
\r
private JTable sectionTable = null;\r
-\r
private DefaultTableModel model;\r
-\r
private WellknownClassManager manager;\r
-\r
private JComboBox checkPartType;\r
-\r
private JComboBox matchType;\r
-\r
private String matchTypeColumnIdentifier;\r
-\r
private String checkPartColumnIdentifier;\r
-\r
private String patternColumnIdentifier;\r
\r
public WellknownClassesSettingsPane(WellknownClassManager manager){\r
initializeData();\r
}\r
\r
+ public void exportSettings(PrintWriter out) throws IOException{\r
+ out.println(" <wellknown-classes>");\r
+ for(int i = 0; i < model.getRowCount(); i++){\r
+ int partType = getPartType(model.getValueAt(i, 0));\r
+ int match = getMatchType(model.getValueAt(i, 1));\r
+ String value = (String)model.getValueAt(i, 2);\r
+ String tag;\r
+ String matchtag;\r
+ if(partType == WellknownClassJudgeRule.CLASS_NAME_TYPE) tag = "class-name";\r
+ else if(partType == WellknownClassJudgeRule.EXCLUDE_TYPE) tag = "exclude";\r
+ else if(partType == WellknownClassJudgeRule.FULLY_TYPE) tag = "fully-name";\r
+ else if(partType == WellknownClassJudgeRule.PACKAGE_TYPE) tag = "package";\r
+ else throw new InternalError("unknown part type: " + partType);\r
+\r
+ if(match == WellknownClassJudgeRule.MATCH_TYPE) matchtag = "match";\r
+ else if(match == WellknownClassJudgeRule.PREFIX_TYPE) matchtag = "prefix";\r
+ else if(match == WellknownClassJudgeRule.SUFFIX_TYPE) matchtag = "suffix";\r
+ else throw new InternalError("unknown match type: " + match);\r
+\r
+ out.printf(" <%s><%s>%s</%s></%s>", tag, matchtag, value, matchtag, tag);\r
+ out.println();\r
+ }\r
+ out.println(" </wellknown-classes>");\r
+ }\r
+\r
public synchronized void setWellknownClasses(WellknownClassManager manager){\r
manager.clear();\r
for(int i = 0; i < model.getRowCount(); i++){\r
<!ELEMENT classpath (#PCDATA)>\r
\r
<!ELEMENT type (#PCDATA)>\r
-<!ELEMENT display-type (#PCDATA)>\r
+<!ELEMENT display-name (#PCDATA)>\r
<!ELEMENT description (#PCDATA)>\r
<!ELEMENT extractor (#PCDATA)>\r
<!ELEMENT comparator (#PCDATA)>\r
\r
<!ELEMENT properties (property*)>\r
\r
-<!ELEMENT service (type,display-type,description,extractor,comparator)>\r
+<!ELEMENT service (type,display-name,description,extractor,comparator)>\r
\r
<!ELEMENT services (service*)>\r
\r
¥Ñ¥Ã¥±¡¼¥¸¤ÎÀÜƬ¼¡¤¥¯¥é¥¹Ì¾¤ÎÀÜÈø¼¡¤¥¯¥é¥¹¤Î´°Á´½¤¾þ̾¤Ç
ÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡¥
-->
+ <!--
+ ¤³¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë¤â¤Î¤Ï¾¤Ç¤¤¤¯¤é wellknown ¤ÈÀßÄꤵ¤ì¤Æ¤¤¤Æ¤â̵»ë¤¹¤ë¡¥
+ »ØÄêÊýË¡¤Ï fully-names ¤ÈƱ¤¸¡¥
+ -->
<wellknown-classes>
- <exclude>
- <!--
- ¤³¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë¤â¤Î¤Ï¾¤Ç¤¤¤¯¤é wellknown ¤ÈÀßÄꤵ¤ì¤Æ¤¤¤Æ¤â̵»ë¤¹¤ë¡¥
- »ØÄêÊýË¡¤Ï fully-names ¤ÈƱ¤¸¡¥
- -->
- <suffix>Exception</suffix>
- <suffix>Error</suffix>
- <match>java.lang.Throwable</match>
- <match>java.lang.ThreadDeath</match>
- </exclude>
+ <exclude><suffix>Exception</suffix></exclude>
+ <exclude><suffix>Error</suffix></exclude>
+ <exclude><match>java.lang.Throwable</match></exclude>
+ <exclude><match>java.lang.ThreadDeath</match></exclude>
- <package>
- <!-- JDK 1.5 ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸ -->
- <prefix>java</prefix>
- <prefix>javax</prefix>
- <prefix>org.omg</prefix>
- <prefix>org.xml</prefix>
- <prefix>org.w3c</prefix>
- <prefix>org.ietf</prefix>
+ <!-- JDK 1.5 ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸ -->
+ <package><prefix>java</prefix></package>
+ <package><prefix>javax</prefix></package>
+ <package><prefix>org.omg</prefix></package>
+ <package><prefix>org.xml</prefix></package>
+ <package><prefix>org.w3c</prefix></package>
+ <package><prefix>org.ietf</prefix></package>
- <!-- ¤½¤Î¾¡¤¤è¤¯»È¤ï¤ì¤Æ¤¤¤½¤¦¤Ê¥Ñ¥Ã¥±¡¼¥¸ -->
- <prefix>org.gnu</prefix>
- <prefix>com.apple</prefix>
- <prefix>pnuts</prefix>
- <prefix>org.eclipse</prefix>
- <prefix>com.sun</prefix>
- <prefix>sun</prefix>
- <prefix>junit</prefix>
- <prefix>org.apache</prefix>
- </package>
+ <!-- ¤½¤Î¾¡¤¤è¤¯»È¤ï¤ì¤Æ¤¤¤½¤¦¤Ê¥Ñ¥Ã¥±¡¼¥¸ -->
+ <package><prefix>org.gnu</prefix></package>
+ <package><prefix>com.apple</prefix></package>
+ <package><prefix>pnuts</prefix></package>
+ <package><prefix>org.eclipse</prefix></package>
+ <package><prefix>com.sun</prefix></package>
+ <package><prefix>sun</prefix></package>
+ <package><prefix>junit</prefix></package>
+ <package><prefix>org.apache</prefix></package>
- <class-name>
- <suffix>Test</suffix>
+ <class-name><suffix>Test</suffix></class-name>
<!--
- <match>well.known.class.name</match>
+ <class-name><match>well.known.class.name</match></class-name>
-->
- </class-name>
<!--
- <fully-name>
- <suffix>Test</suffix>
- <prefix>fully.class.name.preffix</prefix>
- <match>fully.class.name.match</match>
- </fully-name>
+ <fully-name><suffix>Test</suffix></fully-name>
+ <fully-name><prefix>fully.class.name.preffix</prefix></fully-name>
+ <fully-name><match>fully.class.name.match</match></fully-name>
-->
</wellknown-classes>
newframe.menuitem.tooltip=Create New Frame\r
newframe.menuitem.icon=application_add.png\r
\r
+exportsetting.menuitem.label=Export settings...\r
+exportsetting.menuitem.tooltip=Export settings of control panel.\r
+exportsetting.menuitem.icon=page_save.png\r
+export.extensions=xml\r
+export.description=Store stigmata settings to xml file\r
+\r
closetab.menuitem.label=Close Tab\r
closetab.menuteim.tooltip=Close current tab\r
closetab.menuitem.icon=tab_delete.png\r
newframe.menuitem.label=\90V\82½\82È\83t\83\8c\81[\83\80\r
newframe.menuitem.tooltip=\90V\82µ\82¢\83t\83\8c\81[\83\80\82ð\8dì\90¬\82µ\82Ü\82·\r
\r
+exportsetting.menuitem.label=\90Ý\92è\82ð\95Û\91¶...\r
+exportsetting.menuitem.tooltip=\90Ý\92è\82ðXML\83t\83@\83C\83\8b\82É\95Û\91¶\82µ\82Ü\82·\81D\r
+export.description=\90Ý\92è\82ð\8fo\97Í\82·\82éxml\83t\83@\83C\83\8b\r
+\r
closetab.menuitem.label=\83^\83u\82ð\95Â\82¶\82é\r
closetab.menuteim.tooltip=\8c»\8dÝ\82Ì\83^\83u\82ð\95Â\82¶\82Ü\82·\r
\r