Skip to content

Commit

Permalink
Merge pull request #40 from MPS-UPB/vezi_text
Browse files Browse the repository at this point in the history
Implementeaza actiunea "vezi text".
  • Loading branch information
stefanneculai committed Jan 4, 2013
2 parents cb1cfc0 + 7c2319b commit 0449f90
Showing 1 changed file with 159 additions and 4 deletions.
163 changes: 159 additions & 4 deletions 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.
Expand All @@ -10,7 +18,7 @@
public class PopupListener implements ActionListener {

private ElementJPanel panel;

/**
* Constructor.
*
Expand All @@ -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);
}
}
}

0 comments on commit 0449f90

Please sign in to comment.