From 7c2319ba0f2da923b349a536e7f8e3429aba608b Mon Sep 17 00:00:00 2001 From: diana Date: Fri, 4 Jan 2013 17:54:21 +0200 Subject: [PATCH] Implementeaaza actiunea "vezi text". --- src/PopupListener.java | 163 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 159 insertions(+), 4 deletions(-) diff --git a/src/PopupListener.java b/src/PopupListener.java index 9c30096..194d981 100644 --- a/src/PopupListener.java +++ b/src/PopupListener.java @@ -1,6 +1,14 @@ +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.JOptionPane; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; /** * Button listener pentru salvare modificari. @@ -10,7 +18,7 @@ public class PopupListener implements ActionListener { private ElementJPanel panel; - + /** * Constructor. * @@ -22,7 +30,154 @@ public PopupListener(ElementJPanel panel) { @Override public void actionPerformed(ActionEvent e) { - String action = e.getActionCommand(); - JOptionPane.showMessageDialog(null, "Realizeaza actiunea selectata: " + action + "."); + final String action = e.getActionCommand(); + + Thread actionThread = new Thread() { + @Override + public void run() { + try { + switch (action) { + case "Analiza OCR": + AnalyzerSelector as = new AnalyzerSelector("ocr"); + Analyzer selectedAnalyzer = as.chooseAnalyzer(); + break; + + case "Vezi text": + TextFrame tf = new TextFrame(panel); + break; + + case "Sparge bloc text": + break; + + case "Este numar pagina": + break; + } + } + catch (Exception e) { + e.printStackTrace(); + } + } + }; + + actionThread.start(); + } + + /** + * @author Unknown-Revengers + * + * Frame pentru afisarea textului unui element. + */ + @SuppressWarnings("serial") + public class TextFrame extends JFrame { + /** + * Fereastra curenta. + */ + JFrame frame = this; + + /** + * Content panel. + */ + private Container contentPanel; + + /** + * Save button. + */ + private JButton saveBttn; + + /** + * Elementul selectat. + */ + public ElementJPanel elementPanel; + + /** + * TextArea pentru textul elementului. + */ + JTextArea descriptionArea; + + /** + * Constructor + * + * @param panel + * Elementul selectat. + */ + public TextFrame(ElementJPanel panel) { + this.elementPanel = panel; + + // Creaza content panel. + contentPanel = this.getContentPane(); + + // Adauga textul elementului la frame. + this.addText(elementPanel.element.text); + + // Adauga buton. + this.addButton(); + + // Init frame + this.initFrame(); + } + + /** + * Adauga buton pentru Cancel si buton pentru Save. + */ + private void addButton() { + // New Panel. + JPanel panel = new JPanel(); + + // Creeaza buton de save. + saveBttn = new JButton("Save"); + + // Adauga listener pentru butonul de save. + this.saveBttn.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + // Save text. + elementPanel.element.text = descriptionArea.getText(); + + frame.dispose(); + } + }); + + panel.add(saveBttn); + contentPanel.add(panel, BorderLayout.SOUTH); + } + + /** + * Adauga text la fereastra. + * + * @param text + * Textul de adaugat. + */ + private void addText(String text) { + // New Panel. + JPanel panel = new JPanel(); + + // Creaza Text Area pentru text. + descriptionArea = new JTextArea(text); + descriptionArea.setLineWrap(true); + descriptionArea.setWrapStyleWord(true); + descriptionArea.setEditable(true); + + // Adauga Text Area la un scroll panel. + JScrollPane spanel = new JScrollPane(descriptionArea); + spanel.setPreferredSize(new Dimension(200, 100)); + + // Adauga scroll panel la content panel. + panel = new JPanel(); + panel.setSize(200, 100); + panel.add(spanel); + + contentPanel.add(panel, BorderLayout.CENTER); + } + + /** + * Initializeaza frame. + */ + private void initFrame() { + this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + this.setSize(300, 220); + this.setVisible(true); + + setLocationRelativeTo(null); + } } }