1 package jp.sourceforge.stigmata.ui.swing;
7 import java.awt.BorderLayout;
8 import java.awt.event.ActionEvent;
9 import java.io.PrintWriter;
11 import javax.swing.AbstractAction;
12 import javax.swing.Action;
13 import javax.swing.Box;
14 import javax.swing.JButton;
15 import javax.swing.JComponent;
16 import javax.swing.JPanel;
17 import javax.swing.JPopupMenu;
18 import javax.swing.JScrollPane;
20 import jp.sourceforge.stigmata.ExtractionResultSet;
21 import jp.sourceforge.stigmata.ExtractionTarget;
22 import jp.sourceforge.stigmata.printer.ExtractionResultSetPrinter;
23 import jp.sourceforge.stigmata.printer.PrinterManager;
24 import jp.sourceforge.stigmata.spi.ResultPrinterSpi;
25 import jp.sourceforge.stigmata.ui.swing.actions.PopupShowAction;
26 import jp.sourceforge.stigmata.ui.swing.actions.SaveAction;
27 import jp.sourceforge.stigmata.utils.AsciiDataWritable;
28 import jp.sourceforge.talisman.i18n.Messages;
31 * @author Haruaki TAMADA
34 public class BirthmarkExtractionResultPane extends JPanel{
35 private static final long serialVersionUID = 239084365756236543L;
37 private StigmataFrame frame;
38 private ExtractionResultSet extraction;
40 public BirthmarkExtractionResultPane(StigmataFrame stigmataFrame, ExtractionResultSet ers){
41 this.frame = stigmataFrame;
42 this.extraction = ers;
47 private void initLayouts(){
48 JComponent southPanel = Box.createHorizontalBox();
49 Action saveAction = new SaveAction(frame, new AsciiDataWritable(){
51 public void writeAsciiData(PrintWriter out, String format){
52 ResultPrinterSpi service = PrinterManager.getInstance().getService(format);
54 service = PrinterManager.getDefaultFormatService();
57 ExtractionResultSetPrinter list = service.getExtractionResultSetPrinter();
58 list.printResult(new PrintWriter(out), extraction);
61 Action compareAction = new AbstractAction(){
62 private static final long serialVersionUID = -1938101718384412339L;
65 public void actionPerformed(ActionEvent e){
66 frame.compareExtractionResult(extraction);
69 Messages messages = frame.getMessages();
70 JButton saveButton = GUIUtility.createButton(messages, "savebirthmark", saveAction);
71 JButton compareButton = GUIUtility.createButton(messages, "comparebirthmark", compareAction);
73 JPopupMenu popup = new JPopupMenu();
74 popup.add(GUIUtility.createJMenuItem(messages, "savebirthmark", saveAction));
75 popup.add(GUIUtility.createJMenuItem(messages, "comparebirthmark", compareAction));
77 JScrollPane scroll = new JScrollPane();
78 scroll.setViewportView(new BirthmarkTree(frame, extraction.getBirthmarkSets(ExtractionTarget.TARGET_BOTH)));
80 setLayout(new BorderLayout());
82 add(scroll, BorderLayout.CENTER);
83 add(southPanel, BorderLayout.SOUTH);
84 southPanel.add(Box.createHorizontalGlue());
85 southPanel.add(saveButton);
86 southPanel.add(Box.createHorizontalGlue());
87 southPanel.add(compareButton);
88 southPanel.add(Box.createHorizontalGlue());
90 addMouseListener(new PopupShowAction(popup));