[Bprocessor-commit] gui/src/net/sourceforge/bprocessor/gui GUI.java, 1.73, 1.74
Status: Pre-Alpha
Brought to you by:
henryml
From: rimestad <rim...@us...> - 2007-09-22 13:53:47
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv6384/src/net/sourceforge/bprocessor/gui Modified Files: GUI.java Log Message: Implemented alert method in gui Index: GUI.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/GUI.java,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** GUI.java 14 Sep 2007 11:32:38 -0000 1.73 --- GUI.java 22 Sep 2007 13:53:43 -0000 1.74 *************** *** 49,52 **** --- 49,53 ---- import java.awt.BorderLayout; + import java.awt.Color; import java.awt.Component; import java.awt.Dimension; *************** *** 56,59 **** --- 57,62 ---- import java.awt.event.ActionListener; import java.awt.event.KeyEvent; + import java.awt.event.MouseAdapter; + import java.awt.event.MouseEvent; import java.io.File; *************** *** 62,73 **** --- 65,81 ---- import javax.swing.JMenu; import javax.swing.JMenuItem; + import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; + import javax.swing.JTextArea; + import javax.swing.JWindow; import javax.swing.ToolTipManager; import javax.swing.JPopupMenu; import javax.swing.KeyStroke; + import javax.swing.border.LineBorder; import javax.swing.event.MenuEvent; import javax.swing.event.MenuListener; + import javax.swing.Timer; import org.apache.log4j.Logger; *************** *** 113,116 **** --- 121,132 ---- private JTabbedPane tree; + private JWindow alertWindow; + + private JPanel alertPanel; + + private JTextArea textArea; + + private Timer alertTimer; + /** * Constructor for GUI *************** *** 545,550 **** */ public void alert(String string) { ! // TODO Implement at gui alert instead ! log.info("GUI notice: " + string); } --- 561,640 ---- */ public void alert(String string) { ! if (alertWindow == null) { ! alertWindow = new JWindow(this); ! alertWindow.setAlwaysOnTop(true); ! alertWindow.setFocusable(false); ! } ! if (alertPanel == null) { ! alertPanel = new JPanel(); ! alertPanel.setBorder(new LineBorder(new Color(1, 1, 1), 1)); ! alertPanel.setBackground(Color.ORANGE); ! alertPanel.setFocusable(false); ! alertWindow.add(alertPanel); ! } ! if (textArea == null) { ! textArea = new JTextArea(); ! textArea.setOpaque(false); ! textArea.setEditable(false); ! textArea.setHighlighter(null); ! textArea.setFocusable(false); ! textArea.setWrapStyleWord(true); ! textArea.setLineWrap(true); ! alertPanel.add(textArea); ! textArea.addMouseListener(new MouseAdapter() { ! @Override ! public void mouseEntered(MouseEvent e) { ! log.info("Mouse entered"); ! alertTimer.stop(); ! } ! ! @Override ! public void mouseExited(MouseEvent e) { ! alertTimer.start(); ! log.info("Mouse exited"); ! } ! }); ! } ! textArea.setText(string); ! alertPanel.setMaximumSize(new Dimension(300, 400)); ! alertWindow.pack(); ! // to Make sure the window size is correct pack have to be called twice ! alertWindow.pack(); ! ! java.awt.Point where = getFocusOwner().getLocationOnScreen(); ! if (where == null) { ! where = getMousePosition(); ! if (where == null) { ! where = getInstance().getLocation(); ! } else { ! where.x += 5; ! where.y += 5; ! } ! } else { ! where.y += getFocusOwner().getSize().height; ! } ! ! Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); ! int remainingWidth = screenSize.width - where.x; ! int remainingHeight = screenSize.height - where.y; ! if (remainingWidth < alertPanel.getPreferredSize().width) { ! remainingWidth = alertPanel.getPreferredSize().width - remainingWidth; ! where.x = where.x - remainingWidth; ! } ! if (remainingHeight < alertPanel.getPreferredSize().height) { ! remainingHeight = alertPanel.getPreferredSize().height - remainingHeight; ! where.y = where.y - remainingHeight; ! } ! alertWindow.setLocation(where); ! alertWindow.setVisible(true); ! if (alertTimer == null) { ! alertTimer = new Timer(2500, new ActionListener() { ! public void actionPerformed(ActionEvent e) { ! alertWindow.setVisible(false); ! }; ! }); ! alertTimer.setRepeats(false); ! } ! alertTimer.restart(); } |