OSDN Git Service

Delete Subversion Tags (Revision, Id)
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / ui / swing / BirthmarkExtractionResultPane.java
1 package jp.sourceforge.stigmata.ui.swing;
2
3 import java.awt.BorderLayout;
4 import java.awt.event.ActionEvent;
5 import java.io.PrintWriter;
6
7 import javax.swing.AbstractAction;
8 import javax.swing.Action;
9 import javax.swing.Box;
10 import javax.swing.JButton;
11 import javax.swing.JComponent;
12 import javax.swing.JPanel;
13 import javax.swing.JPopupMenu;
14 import javax.swing.JScrollPane;
15
16 import jp.sourceforge.stigmata.ExtractionResultSet;
17 import jp.sourceforge.stigmata.ExtractionTarget;
18 import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter;
19 import jp.sourceforge.stigmata.printer.PrinterManager;
20 import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
21 import jp.sourceforge.stigmata.ui.swing.actions.PopupShowAction;
22 import jp.sourceforge.stigmata.ui.swing.actions.SaveAction;
23 import jp.sourceforge.stigmata.utils.AsciiDataWritable;
24 import jp.sourceforge.talisman.i18n.Messages;
25
26 /**
27  * @author Haruaki TAMADA
28  */
29 public class BirthmarkExtractionResultPane extends JPanel{
30     private static final long serialVersionUID = 239084365756236543L;
31
32     private StigmataFrame frame;
33     private ExtractionResultSet extraction;
34
35     public BirthmarkExtractionResultPane(StigmataFrame stigmataFrame, ExtractionResultSet ers){
36         this.frame = stigmataFrame;
37         this.extraction = ers;
38
39         initLayouts();
40     }
41
42     private void initLayouts(){
43         JComponent southPanel = Box.createHorizontalBox();
44         Action saveAction = new SaveAction(frame, new AsciiDataWritable(){
45             @Override
46             public void writeAsciiData(PrintWriter out, String format){
47                 ResultPrinterSpi service = PrinterManager.getInstance().getService(format);
48                 if(service == null){
49                     service = PrinterManager.getDefaultFormatService();
50                 }
51
52                 ExtractionResultSetPrinter list = service.getExtractionResultSetPrinter();
53                 list.printResult(new PrintWriter(out), extraction);
54             }
55         });
56         Action compareAction = new AbstractAction(){
57             private static final long serialVersionUID = -1938101718384412339L;
58
59             @Override
60             public void actionPerformed(ActionEvent e){
61                 frame.compareExtractionResult(extraction);
62             }
63         };
64         Messages messages = frame.getMessages();
65         JButton saveButton = GUIUtility.createButton(messages, "savebirthmark", saveAction);
66         JButton compareButton = GUIUtility.createButton(messages, "comparebirthmark", compareAction);
67
68         JPopupMenu popup = new JPopupMenu();
69         popup.add(GUIUtility.createJMenuItem(messages, "savebirthmark", saveAction));
70         popup.add(GUIUtility.createJMenuItem(messages, "comparebirthmark", compareAction));
71
72         JScrollPane scroll = new JScrollPane();
73         scroll.setViewportView(new BirthmarkTree(frame, extraction.getBirthmarkSets(ExtractionTarget.TARGET_BOTH)));
74
75         setLayout(new BorderLayout());
76         add(popup);
77         add(scroll, BorderLayout.CENTER);
78         add(southPanel, BorderLayout.SOUTH);
79         southPanel.add(Box.createHorizontalGlue());
80         southPanel.add(saveButton);
81         southPanel.add(Box.createHorizontalGlue());
82         southPanel.add(compareButton);
83         southPanel.add(Box.createHorizontalGlue());
84
85         addMouseListener(new PopupShowAction(popup));
86     }
87 }