1 package jp.sourceforge.stigmata.ui.swing;
3 import java.awt.BorderLayout;
4 import java.awt.event.ActionEvent;
5 import java.io.PrintWriter;
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;
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;
27 * @author Haruaki TAMADA
29 public class BirthmarkExtractionResultPane extends JPanel{
30 private static final long serialVersionUID = 239084365756236543L;
32 private StigmataFrame frame;
33 private ExtractionResultSet extraction;
35 public BirthmarkExtractionResultPane(StigmataFrame stigmataFrame, ExtractionResultSet ers){
36 this.frame = stigmataFrame;
37 this.extraction = ers;
42 private void initLayouts(){
43 JComponent southPanel = Box.createHorizontalBox();
44 Action saveAction = new SaveAction(frame, new AsciiDataWritable(){
46 public void writeAsciiData(PrintWriter out, String format){
47 ResultPrinterSpi service = PrinterManager.getInstance().getService(format);
49 service = PrinterManager.getDefaultFormatService();
52 ExtractionResultSetPrinter list = service.getExtractionResultSetPrinter();
53 list.printResult(new PrintWriter(out), extraction);
56 Action compareAction = new AbstractAction(){
57 private static final long serialVersionUID = -1938101718384412339L;
60 public void actionPerformed(ActionEvent e){
61 frame.compareExtractionResult(extraction);
64 Messages messages = frame.getMessages();
65 JButton saveButton = GUIUtility.createButton(messages, "savebirthmark", saveAction);
66 JButton compareButton = GUIUtility.createButton(messages, "comparebirthmark", compareAction);
68 JPopupMenu popup = new JPopupMenu();
69 popup.add(GUIUtility.createJMenuItem(messages, "savebirthmark", saveAction));
70 popup.add(GUIUtility.createJMenuItem(messages, "comparebirthmark", compareAction));
72 JScrollPane scroll = new JScrollPane();
73 scroll.setViewportView(new BirthmarkTree(frame, extraction.getBirthmarkSets(ExtractionTarget.TARGET_BOTH)));
75 setLayout(new BorderLayout());
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());
85 addMouseListener(new PopupShowAction(popup));