From 585351bb1130e86131a97d2bb128bf7a16542401 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 23 Aug 2012 15:44:33 +0000 Subject: [PATCH] Block user operations --- .../org/diylc/swing/gui/CustomGlassPane.java | 72 +++++++++++-------- .../src/org/diylc/swing/gui/MainFrame.java | 8 +-- .../diylc-swing/update.xml | 6 +- 3 files changed, 52 insertions(+), 34 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java index 9852bdcd..3d137e4b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/CustomGlassPane.java @@ -1,42 +1,56 @@ package org.diylc.swing.gui; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; +import java.awt.Cursor; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionAdapter; +import java.awt.event.MouseListener; -import javax.swing.Icon; -import javax.swing.JComponent; +import javax.swing.JPanel; -public class CustomGlassPane extends JComponent { +public class CustomGlassPane extends JPanel implements MouseListener, + KeyListener { - private static final long serialVersionUID = 1L; - private Icon icon; + public static final CustomGlassPane GLASS_PANE = new CustomGlassPane(); + + private static final long serialVersionUID = -5344758920442881290L; public CustomGlassPane() { - super(); - addMouseMotionListener(new MouseMotionAdapter() { - - @Override - public void mouseMoved(MouseEvent e) { - if (icon != null) { - repaint(); - } - } - }); - } - - public void setCursorIcon(Icon icon) { - this.icon = icon; + addKeyListener(this); + addMouseListener(this); + setCursor(new Cursor(Cursor.WAIT_CURSOR)); + setOpaque(false); } @Override - public void paint(Graphics g) { - Point cursor = getMousePosition(); - if ((icon != null) && (cursor != null)) { - Graphics2D g2d = (Graphics2D) g; - icon.paintIcon(this, g2d, cursor.x + 10, cursor.y + 10); - } + public void mouseClicked(final MouseEvent pArg0) { + } + + @Override + public void mouseEntered(final MouseEvent pArg0) { + } + + @Override + public void mouseExited(final MouseEvent pArg0) { + } + + @Override + public void mousePressed(final MouseEvent pArg0) { + } + + @Override + public void mouseReleased(final MouseEvent pArg0) { + } + + @Override + public void keyPressed(KeyEvent e) { + } + + @Override + public void keyReleased(KeyEvent e) { + } + + @Override + public void keyTyped(KeyEvent e) { } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java index 5f1b8516..1d53a7bc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/MainFrame.java @@ -148,7 +148,7 @@ public class MainFrame extends JFrame implements ISwingUI { } }); - // setGlassPane(new CustomGlassPane()); + setGlassPane(new CustomGlassPane()); // getGlassPane().setVisible(true); } @@ -313,10 +313,10 @@ public class MainFrame extends JFrame implements ISwingUI { menu.add(submenu); menuMap.put(name, submenu); } - + @Override public void executeBackgroundTask(final ITask task) { - setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + getGlassPane().setVisible(true); SwingWorker worker = new SwingWorker() { @Override @@ -333,7 +333,7 @@ public class MainFrame extends JFrame implements ISwingUI { LOG.error("Task failed", e); task.failed(e); } - setCursor(Cursor.getDefaultCursor()); + getGlassPane().setVisible(false); } }; worker.execute(); diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml index 58c35815..cdb11209 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml @@ -769,7 +769,11 @@ NEW_FEATURE Polygon Ground Fill component - + + + IMPROVEMENT + Block user actions during long operations (print, export, etc) + http://code.google.com/p/diy-layout-creator/downloads/list