summaryrefslogtreecommitdiffstats
path: root/Master/Agile Software Development/TestApp/src/testapp/AppFrame.java
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Agile Software Development/TestApp/src/testapp/AppFrame.java')
-rw-r--r--Master/Agile Software Development/TestApp/src/testapp/AppFrame.java172
1 files changed, 172 insertions, 0 deletions
diff --git a/Master/Agile Software Development/TestApp/src/testapp/AppFrame.java b/Master/Agile Software Development/TestApp/src/testapp/AppFrame.java
new file mode 100644
index 0000000..ab025c4
--- /dev/null
+++ b/Master/Agile Software Development/TestApp/src/testapp/AppFrame.java
@@ -0,0 +1,172 @@
+/*
+ * GUI
+ */
+package testapp;
+
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+import java.util.logging.*;
+import javax.swing.JProgressBar;
+
+/**
+ *
+ * @author eisenhauer
+ */
+public class AppFrame extends JFrame {
+
+ private static final Logger logger = Logger.getLogger(AppFrame.class.getName());
+
+ private JPanel taskPanel;
+ private JTextField urlTxf;
+ private JButton loadBtn;
+ private ImageComponent imgComp;
+ private JScrollPane imgScroll;
+ private static AppFrame theInstance = null;
+ private JPanel progressPanel;
+
+ public AppFrame(String title) {
+ super(title);
+ theInstance = this;
+ initUI();
+
+
+ }
+
+ public static AppFrame getInstance() {
+ return theInstance;
+ }
+
+ private void initUI() {
+ this.addWindowListener(new WindowAdapter() {
+
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if (imgComp != null) {
+ if (imgComp.getFile() != null) {
+ // TODO
+ //imgComp.getFile().delete();
+ }
+ }
+ System.exit(0);
+ }
+ });
+ Container cont = this.getContentPane();
+ ButtonListener bl = new ButtonListener();
+ CellConstraints cc = new CellConstraints();
+ setLayout(new BorderLayout());
+ taskPanel = new JPanel();
+ String colSpec = "5dlu,p,5dlu,200dlu,5dlu,p,5dlu";
+ String rowSpec = "5dlu,p,5dlu,p,5dlu";
+ taskPanel.setLayout(new FormLayout(colSpec, rowSpec));
+ int row = 2;
+ JLabel urlLabel = new JLabel("URL:");
+ taskPanel.add(urlLabel, cc.xy(2, row));
+ urlTxf = new JTextField("");
+ taskPanel.add(urlTxf, cc.xy(4, row));
+ loadBtn = new JButton("Analyze");
+ loadBtn.setActionCommand("LOADURL");
+ loadBtn.addActionListener(bl);
+ urlTxf.addKeyListener(bl);
+ taskPanel.add(loadBtn, cc.xy(6, row));
+ imgComp = new ImageComponent();
+ imgScroll = new JScrollPane(imgComp);
+ imgScroll.setPreferredSize(new Dimension(200, 200));
+
+ JProgressBar progressBar = new JProgressBar();
+ progressBar.setIndeterminate(true);
+ progressPanel = new JPanel();
+ progressPanel.setVisible(false);
+ progressBar.setPreferredSize(new Dimension (500,25));
+
+ imgScroll.setForeground(Color.white);
+
+ progressBar.setBackground(Color.black);
+ progressBar.setForeground(Color.red);
+
+
+ progressPanel.add(progressBar);
+
+
+ cont.add(progressPanel, BorderLayout.SOUTH);
+ cont.add(taskPanel, BorderLayout.NORTH);
+ cont.add(imgScroll, BorderLayout.CENTER);
+ }
+
+ public void endProgressBar ()
+ {
+ progressPanel.setVisible(false);
+ }
+
+ private void onLoad() {
+ String url = urlTxf.getText();
+
+ if (!url.startsWith("http://"))
+ url = "http://" + url;
+
+ ItemGenerator ig = new ItemGenerator(url, progressPanel);
+
+ progressPanel.setVisible(true);
+
+ ig.execute();
+ }
+
+ public void setImage(File img) {
+ if (!img.canRead()) {
+ logger.log(Level.SEVERE,"Cannot read File");
+ return;
+ }
+ if (imgComp.getFile() != null) {
+ //TODO
+ //imgComp.getFile().delete();
+ }
+ imgComp.setImage(img);
+ imgScroll.revalidate();
+ progressPanel.setVisible(false);
+ }
+
+ public File getImageFile() {
+ return imgComp.getFile();
+ }
+
+ public class ButtonListener implements ActionListener, KeyListener {
+
+ public void actionPerformed(ActionEvent e) {
+ String cmd = e.getActionCommand();
+ if (cmd.equals("LOADURL")) {
+ onLoad();
+ }
+ }
+
+ public void keyTyped(KeyEvent e) {
+ }
+
+ public void keyPressed(KeyEvent e) {
+ int key = e.getKeyCode();
+ if (key == KeyEvent.VK_ENTER) {
+ onLoad();
+ }
+ }
+
+ public void keyReleased(KeyEvent e) {
+ }
+ }
+
+
+}