package org.argouml.ui; import java.awt.BorderLayout; import java.awt.DisplayMode; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.StringReader; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.ScrollPaneConstants; import javax.swing.text.BadLocationException; import javax.swing.text.html.HTMLDocument; import javax.swing.text.html.HTMLEditorKit; import org.argouml.application.Main; import org.argouml.util.GATEHelper; /** * Klasse zum Anzeigen der Aufgabenstellung * * @author Joachim Schramm * */ public class ActionShowTask implements Runnable { public static String taskDescription = ""; public void showTask() { // Dummythread starten Thread thread = new Thread(this); thread.start(); // Windows Aufl�sung erkennen GraphicsEnvironment env = GraphicsEnvironment .getLocalGraphicsEnvironment(); GraphicsDevice gd = env.getDefaultScreenDevice(); DisplayMode dm = gd.getDisplayMode(); // Fenster erzeugen JFrame workWindows = new JFrame("Aufgabenstellung"); workWindows.setLayout(new BorderLayout()); JButton uploadToGate = new JButton("Export2GATE"); uploadToGate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { new ActionExport2Gate().actionPerformed(arg0); } }); workWindows.add(uploadToGate, BorderLayout.SOUTH); JTextPane aufgabenstellungPane = new JTextPane(); HTMLDocument f = new HTMLDocument(); StringReader reader = new StringReader(taskDescription); try { new HTMLEditorKit().read(reader, f, 0); } catch (IOException ioe) { } catch (BadLocationException ble) { } aufgabenstellungPane.setContentType("text/html"); aufgabenstellungPane.setStyledDocument(f); aufgabenstellungPane.setEditable(false); aufgabenstellungPane.setCaretPosition(0); JScrollPane scrollPane = new JScrollPane(aufgabenstellungPane, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); workWindows.add(scrollPane, BorderLayout.CENTER); // Unschlie�bar machen workWindows.setDefaultCloseOperation(0); // Groesse des Fenster dynamisch festlegen int heigh = new Double(dm.getHeight() / 2.4).intValue(); int width = new Double(dm.getWidth() / 3.6).intValue(); int heighTaskLeiste = new Double(dm.getHeight() / 22).intValue(); workWindows.setSize(width, heigh); workWindows.setLocation(0, dm.getHeight() - heigh - heighTaskLeiste); // Immer im Vordergrund workWindows.setAlwaysOnTop(true); workWindows.setVisible(true); } // Dummythread: St�ndige Anfrage an Server, um das Ausloggen zu verhindern public void run() { try { while (!Thread.interrupted()) { GATEHelper.retrieve("/Noop"); try { Thread.sleep(60000); } catch (InterruptedException e1) { Thread.interrupted(); } } } catch (Exception e) { } } }