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();
}
|