Thread: [Imagetools-commit] SF.net SVN: imagetools:[2] trunk/imagetools/src/net/codebuilders/desktop/ imag
Status: Beta
Brought to you by:
cmarcum
From: <cm...@us...> - 2009-04-05 23:13:43
|
Revision: 2 http://imagetools.svn.sourceforge.net/imagetools/?rev=2&view=rev Author: cmarcum Date: 2009-04-05 23:13:33 +0000 (Sun, 05 Apr 2009) Log Message: ----------- Added method to show information message. Need to inform user to select a rectangle to crop if none were selected. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-04 13:48:36 UTC (rev 1) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-05 23:13:33 UTC (rev 2) @@ -569,38 +569,44 @@ // setup the mouse event for rectangle imageArea.setMouseEvtType(ImageArea.DRAW_RECTANGLE); + if (imageArea.isReadyToCrop()) { + boolean succeeded = false; - // TODO select the rectangle if we don't have one/ - // if no regtangle selection set message to select - boolean succeeded = false; + succeeded = imageArea.crop(); - succeeded = imageArea.crop(); + if (succeeded) { + // added 2009-03-14 for undo/redo + // ImageToolsModel itModel = ImageToolsApp.getApplication().getItModel(); - if (succeeded) { - // added 2009-03-14 for undo/redo - // ImageToolsModel itModel = ImageToolsApp.getApplication().getItModel(); + // listener handles it now + // itModel.setImage((BufferedImage) imageArea.getImage()); - // listener handles it now - // itModel.setImage((BufferedImage) imageArea.getImage()); + this.setUndoEnabled(!itModel.undoQueue.isEmpty()); + this.setRedoEnabled(!itModel.redoQueue.isEmpty()); - this.setUndoEnabled(!itModel.undoQueue.isEmpty()); - this.setRedoEnabled(!itModel.redoQueue.isEmpty()); + statusMessageLabel.setText("Save image."); - statusMessageLabel.setText("Save image."); + // force a re-layout + this.getRootPane().validate(); + // fix size + this.getFrame().pack(); - // force a re-layout - this.getRootPane().validate(); - // fix size - this.getFrame().pack(); + } else { - } else { + showError("Error during crop operation."); + return; - showError("Error during crop operation."); - return; + } + + + } else { + statusMessageLabel.setText(""); + showInfo("Please select rectangular area and Crop again."); } + } // end cropImage @Action(enabledProperty = "fileSaveEnabled", selectedProperty = "fileSaveSelected") @@ -714,6 +720,16 @@ JOptionPane.ERROR_MESSAGE); } + /** + * Present an information message via a dialog box. + * + * @param message the message to be presented + */ + public static void showInfo(String message) { + JOptionPane.showMessageDialog(null, message, "Image Tools", + JOptionPane.INFORMATION_MESSAGE); + } + @Action public void showUsingBox() { if (usingBox == null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-09 00:04:16
|
Revision: 9 http://imagetools.svn.sourceforge.net/imagetools/?rev=9&view=rev Author: cmarcum Date: 2009-04-09 00:04:13 +0000 (Thu, 09 Apr 2009) Log Message: ----------- Added body to empty drawRectangle() method. Added ESC to cancel to status messages of drawLine and drawText methods. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-09 00:00:53 UTC (rev 8) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-09 00:04:13 UTC (rev 9) @@ -797,7 +797,7 @@ imageArea.setMouseEvtType(ImageArea.DRAW_LINE); // imageArea.setupLineMouseListeners(); done in setMouseEvtType - statusMessageLabel.setText("Draw Line."); + statusMessageLabel.setText("Draw Line - ESC to cancel."); } @Action(enabledProperty = "drawTextEnabled", selectedProperty = "drawTextSelected") @@ -816,13 +816,14 @@ imageArea.setMouseEvtType(ImageArea.DRAW_TEXT); // imageArea.setupTextMouseListeners(); done in setMouseEvtType - statusMessageLabel.setText("Pick text origin."); + statusMessageLabel.setText("Pick text origin - ESC to cancel."); } @Action(enabledProperty = "drawRectangleEnabled", selectedProperty = "drawRectangleSelected") public void drawRectangle() { - // TODO drawRectangle method + imageArea.setMouseEvtType(ImageArea.DRAW_RECTANGLE); + statusMessageLabel.setText("Draw Rectangle - ESC to cancel."); } @Action(enabledProperty = "undoEnabled", selectedProperty = "undoSelected") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-09 00:33:31
|
Revision: 10 http://imagetools.svn.sourceforge.net/imagetools/?rev=10&view=rev Author: cmarcum Date: 2009-04-09 00:33:27 +0000 (Thu, 09 Apr 2009) Log Message: ----------- Added tempPath in fileSave to test for extension in lowercase and still have original path. Changing path to lowercase broke save on UNIX and Linux. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-09 00:04:13 UTC (rev 9) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-09 00:33:27 UTC (rev 10) @@ -659,8 +659,7 @@ @Action(enabledProperty = "fileSaveEnabled", selectedProperty = "fileSaveSelected") public void fileSave() { // Disallow image saving if there is no image to save. - // TODO this should save from the model - if (imageArea.getImage() == null) { + if (itModel.getImage() == null) { showError("No captured image."); return; } @@ -679,8 +678,11 @@ // .jpg extension. File file = fcSave.getSelectedFile(); - String path = file.getAbsolutePath().toLowerCase(); - if (!path.endsWith(".jpg") && !path.endsWith(".jpeg")) { + + String path = file.getAbsolutePath(); + // temp path changed to lowercase + String tempPath = path.toLowerCase(); + if (!tempPath.endsWith(".jpg") && !tempPath.endsWith(".jpeg")) { file = new File(path += ".jpg"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-10 21:07:10
|
Revision: 17 http://imagetools.svn.sourceforge.net/imagetools/?rev=17&view=rev Author: cmarcum Date: 2009-04-10 21:07:07 +0000 (Fri, 10 Apr 2009) Log Message: ----------- Changed status message to explain text dragging. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-10 21:05:49 UTC (rev 16) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-10 21:07:07 UTC (rev 17) @@ -823,7 +823,7 @@ imageArea.setMouseEvtType(ImageArea.DRAW_TEXT); // imageArea.setupTextMouseListeners(); done in setMouseEvtType - statusMessageLabel.setText("Pick text origin - ESC to cancel."); + statusMessageLabel.setText("Hold LMB to drag, release to place."); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-19 19:34:20
|
Revision: 33 http://imagetools.svn.sourceforge.net/imagetools/?rev=33&view=rev Author: cmarcum Date: 2009-04-19 19:34:17 +0000 (Sun, 19 Apr 2009) Log Message: ----------- Updated text box height to hide vertical scrollbar. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-19 19:30:55 UTC (rev 32) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-19 19:34:17 UTC (rev 33) @@ -854,7 +854,7 @@ ImageToolsApp.getApplication().show(drawTextBox); // override the size saved by application - drawTextBox.setPreferredSize(new Dimension(320,180)); + drawTextBox.setPreferredSize(new Dimension(320,200)); drawTextBox.pack(); imageArea.setMouseEvtType(ImageArea.DRAW_TEXT); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-25 16:57:40
|
Revision: 36 http://imagetools.svn.sourceforge.net/imagetools/?rev=36&view=rev Author: cmarcum Date: 2009-04-25 16:57:32 +0000 (Sat, 25 Apr 2009) Log Message: ----------- modified logging and added showError to fileOpen method Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-22 01:01:15 UTC (rev 35) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-25 16:57:32 UTC (rev 36) @@ -922,6 +922,8 @@ FileImageInputStream inputStream = null; BufferedImage bi = null; + Logger logger = Logger.getLogger(ImageToolsView.class.getName()); + // Present the "open" file chooser without any file selected. // If the user cancels this file chooser, exit this method. @@ -946,14 +948,17 @@ inputStream = new FileImageInputStream(file); } catch (FileNotFoundException ex) { - Logger.getLogger(ImageToolsView.class.getName()).log(Level.SEVERE, null, ex); + logger.log(Level.SEVERE, null, ex); + showError("File not found " + ex); } catch (IOException ex) { - Logger.getLogger(ImageToolsView.class.getName()).log(Level.SEVERE, null, ex); + logger.log(Level.SEVERE, null, ex); + showError("IOException " + ex); } try { bi = ImageIO.read(inputStream); } catch (IOException ex) { - Logger.getLogger(ImageToolsView.class.getName()).log(Level.SEVERE, null, ex); + logger.log(Level.SEVERE, null, ex); + showError("IOException " + ex); } itModel.setImage(bi); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-10 14:52:00
|
Revision: 13 http://imagetools.svn.sourceforge.net/imagetools/?rev=13&view=rev Author: cmarcum Date: 2009-04-10 14:51:48 +0000 (Fri, 10 Apr 2009) Log Message: ----------- Fixed cropImage to use the DRAW_CROP_RECTANGLE due to changing the constant name in ImageArea. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-09 00:47:18 UTC (rev 12) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-10 14:51:48 UTC (rev 13) @@ -614,7 +614,7 @@ public void cropImage() { // setup the mouse event for rectangle - imageArea.setMouseEvtType(ImageArea.DRAW_RECTANGLE); + imageArea.setMouseEvtType(ImageArea.DRAW_CROP_RECTANGLE); if (imageArea.isReadyToCrop()) { boolean succeeded = false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-10 19:10:53
|
Revision: 14 http://imagetools.svn.sourceforge.net/imagetools/?rev=14&view=rev Author: cmarcum Date: 2009-04-10 19:10:50 +0000 (Fri, 10 Apr 2009) Log Message: ----------- Added body to fileOpen method. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-10 14:51:48 UTC (rev 13) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-10 19:10:50 UTC (rev 14) @@ -25,6 +25,9 @@ package net.codebuilders.desktop.imagetools; import java.awt.event.KeyListener; +import java.io.FileNotFoundException; +import java.util.logging.Level; +import java.util.logging.Logger; import org.jdesktop.application.Action; import org.jdesktop.application.ResourceMap; import org.jdesktop.application.SingleFrameApplication; @@ -41,8 +44,10 @@ import java.util.Iterator; import javax.imageio.IIOImage; import javax.imageio.ImageIO; +import javax.imageio.ImageReader; import javax.imageio.ImageWriteParam; import javax.imageio.ImageWriter; +import javax.imageio.stream.FileImageInputStream; import javax.imageio.stream.ImageOutputStream; import javax.swing.Timer; import javax.swing.Icon; @@ -68,10 +73,10 @@ // filter, and restrict the files that can be selected to those ending // with .jpg or .jpeg extensions. - fcSave = new JFileChooser(); - fcSave.setCurrentDirectory(new File(System.getProperty("user.dir"))); - fcSave.setAcceptAllFileFilterUsed(false); - fcSave.setFileFilter(new ImageFileFilter()); + imageChooser = new JFileChooser(); + imageChooser.setCurrentDirectory(new File(System.getProperty("user.dir"))); + imageChooser.setAcceptAllFileFilterUsed(false); + imageChooser.setFileFilter(new ImageFileFilter()); itModel = new ImageToolsModel(); @@ -188,9 +193,9 @@ } }); - - + + } // end constructor @Action @@ -518,7 +523,7 @@ private void lineButtonKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_lineButtonKeyPressed // if ESC key, unselect button - if(evt.getKeyCode() == KeyEvent.VK_ESCAPE) { + if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) { drawButtonGroup.clearSelection(); imageArea.tearDownMouseListeners(); } @@ -527,7 +532,7 @@ private void rectangleButtonKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_rectangleButtonKeyPressed // if ESC key, unselect button - if(evt.getKeyCode() == KeyEvent.VK_ESCAPE) { + if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) { drawButtonGroup.clearSelection(); imageArea.tearDownMouseListeners(); } @@ -535,7 +540,7 @@ private void textButtonKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textButtonKeyPressed // if ESC key, unselect button - if(evt.getKeyCode() == KeyEvent.VK_ESCAPE) { + if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) { drawButtonGroup.clearSelection(); imageArea.tearDownMouseListeners(); } @@ -667,8 +672,8 @@ // Present the "save" file chooser without any file selected. // If the user cancels this file chooser, exit this method. - fcSave.setSelectedFile(null); - if (fcSave.showSaveDialog(mainFrame) != + imageChooser.setSelectedFile(null); + if (imageChooser.showSaveDialog(mainFrame) != JFileChooser.APPROVE_OPTION) { return; } @@ -677,8 +682,8 @@ // must be .jpg or .jpeg. If extension not present, append // .jpg extension. - File file = fcSave.getSelectedFile(); - + File file = imageChooser.getSelectedFile(); + String path = file.getAbsolutePath(); // temp path changed to lowercase String tempPath = path.toLowerCase(); @@ -862,7 +867,75 @@ @Action(enabledProperty = "fileOpenEnabled", selectedProperty = "fileOpenSelected") public void fileOpen() { - // TODO fileOpen method + + File file = null; + FileImageInputStream inputStream = null; + BufferedImage bi = null; + + // Present the "open" file chooser without any file selected. + // If the user cancels this file chooser, exit this method. + + imageChooser.setSelectedFile(null); + if (imageChooser.showOpenDialog(mainFrame) != + JFileChooser.APPROVE_OPTION) { + return; + } + + // Obtain the selected file. Validate its extension, which + // must be .jpg or .jpeg. If extension not present, append + // .jpg extension. + + file = imageChooser.getSelectedFile(); + + // check if file exists and make sure it's an image(or .jpg) + // if not show an error box + // TODO see if file is jpg - user can still type in a filename in chooser + if (file.exists()) { + // open it + try { + + inputStream = new FileImageInputStream(file); + } catch (FileNotFoundException ex) { + Logger.getLogger(ImageToolsView.class.getName()).log(Level.SEVERE, null, ex); + } catch (IOException ex) { + Logger.getLogger(ImageToolsView.class.getName()).log(Level.SEVERE, null, ex); + } + try { + bi = ImageIO.read(inputStream); + } catch (IOException ex) { + Logger.getLogger(ImageToolsView.class.getName()).log(Level.SEVERE, null, ex); + } + + itModel.setImage(bi); + + imageArea.setImage(itModel.getImage(), false); + + JScrollPane scrollPane = new JScrollPane(imageArea); + + // switch to new panel with image + this.setComponent(scrollPane); + + statusMessageLabel.setText("Select area to crop."); + + // setup button enabled status after a capture + this.setFileOpenEnabled(false); + this.setFileSaveEnabled(true); + this.setFileCloseEnabled(true); + this.setCaptureEnabled(false); + this.setCropEnabled(true); + this.setDrawLineEnabled(true); + this.setDrawRectangleEnabled(true); + this.setDrawTextEnabled(true); + this.setUndoEnabled(!itModel.undoQueue.isEmpty()); + this.setRedoEnabled(!itModel.redoQueue.isEmpty()); + + // force a re-layout + this.getRootPane().validate(); + + } else { + showError("File to open is not a usable image"); + } + } @Action(enabledProperty = "fileCloseEnabled", selectedProperty = "fileCloseSelected") @@ -1168,7 +1241,7 @@ // private ImageToolsModel itModel; ref from app private JFrame mainFrame; private ImageArea imageArea; - private final JFileChooser fcSave; + private final JFileChooser imageChooser; // added to test new events 2009-03-20 private ImageToolsModel itModel; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-19 19:29:39
|
Revision: 31 http://imagetools.svn.sourceforge.net/imagetools/?rev=31&view=rev Author: cmarcum Date: 2009-04-19 19:29:31 +0000 (Sun, 19 Apr 2009) Log Message: ----------- Added preferred size, and pack of drawTextBox after it is shown to override saved size. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-19 19:26:46 UTC (rev 30) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-19 19:29:31 UTC (rev 31) @@ -24,6 +24,7 @@ */ package net.codebuilders.desktop.imagetools; +import java.awt.Dimension; import java.awt.event.KeyListener; import java.io.FileNotFoundException; import java.util.logging.Level; @@ -852,6 +853,10 @@ } ImageToolsApp.getApplication().show(drawTextBox); + // override the size saved by application + drawTextBox.setPreferredSize(new Dimension(320,180)); + drawTextBox.pack(); + imageArea.setMouseEvtType(ImageArea.DRAW_TEXT); // imageArea.setupTextMouseListeners(); done in setMouseEvtType statusMessageLabel.setText("Hold LMB to drag, release to place."); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cm...@us...> - 2009-04-19 20:03:27
|
Revision: 34 http://imagetools.svn.sourceforge.net/imagetools/?rev=34&view=rev Author: cmarcum Date: 2009-04-19 20:03:13 +0000 (Sun, 19 Apr 2009) Log Message: ----------- Updated methods to clear selection for draw button group if we cropped, closed, or undo, redo and set mouse listeners. Modified Paths: -------------- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java Modified: trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java =================================================================== --- trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-19 19:34:17 UTC (rev 33) +++ trunk/imagetools/src/net/codebuilders/desktop/imagetools/ImageToolsView.java 2009-04-19 20:03:13 UTC (rev 34) @@ -590,6 +590,9 @@ statusMessageLabel.setText("Select area to crop."); + // set mouse listener for crop rectangle + imageArea.setMouseEvtType(ImageArea.DRAW_CROP_RECTANGLE); + // setup button enabled status after a capture this.setFileOpenEnabled(false); this.setFileSaveEnabled(true); @@ -639,6 +642,9 @@ @Action(enabledProperty = "cropEnabled", selectedProperty = "cropSelected") public void cropImage() { + // in case we were drawing + drawButtonGroup.clearSelection(); + // setup the mouse event for rectangle imageArea.setMouseEvtType(ImageArea.DRAW_CROP_RECTANGLE); @@ -791,7 +797,7 @@ * @param message the message to be presented */ public static void showError(String message) { - + JOptionPane.showMessageDialog(null, message, "Image Tools", JOptionPane.ERROR_MESSAGE, errorIcon); } @@ -854,7 +860,7 @@ ImageToolsApp.getApplication().show(drawTextBox); // override the size saved by application - drawTextBox.setPreferredSize(new Dimension(320,200)); + drawTextBox.setPreferredSize(new Dimension(320, 200)); drawTextBox.pack(); imageArea.setMouseEvtType(ImageArea.DRAW_TEXT); @@ -872,6 +878,10 @@ @Action(enabledProperty = "undoEnabled", selectedProperty = "undoSelected") public void undo() { + // in case we were drawing + drawButtonGroup.clearSelection(); + imageArea.tearDownMouseListeners(); + // ImageToolsModel itModel = ImageToolsApp.getApplication().getItModel(); // itModel.setImage((BufferedImage) imageArea.getImage()); itModel.undo(); @@ -889,6 +899,10 @@ @Action(enabledProperty = "redoEnabled", selectedProperty = "redoSelected") public void redo() { + // in case we were drawing + drawButtonGroup.clearSelection(); + imageArea.tearDownMouseListeners(); + // ImageToolsModel itModel = ImageToolsApp.getApplication().getItModel(); // itModel.setImage((BufferedImage) imageArea.getImage()); itModel.redo(); @@ -946,28 +960,28 @@ imageArea.setImage(itModel.getImage(), false); - JScrollPane scrollPane = new JScrollPane(imageArea); + JScrollPane scrollPane = new JScrollPane(imageArea); - // switch to new panel with image - this.setComponent(scrollPane); + // switch to new panel with image + this.setComponent(scrollPane); - statusMessageLabel.setText("Select area to crop."); + statusMessageLabel.setText("Select area to crop."); - // setup button enabled status after a capture - this.setFileOpenEnabled(false); - this.setFileSaveEnabled(true); - this.setFileCloseEnabled(true); - this.setCaptureEnabled(false); - this.setCropEnabled(true); - this.setDrawLineEnabled(true); - this.setDrawRectangleEnabled(true); - this.setDrawTextEnabled(true); - this.setUndoEnabled(!itModel.undoQueue.isEmpty()); - this.setRedoEnabled(!itModel.redoQueue.isEmpty()); - - // force a re-layout - this.getRootPane().validate(); - + // setup button enabled status after a capture + this.setFileOpenEnabled(false); + this.setFileSaveEnabled(true); + this.setFileCloseEnabled(true); + this.setCaptureEnabled(false); + this.setCropEnabled(true); + this.setDrawLineEnabled(true); + this.setDrawRectangleEnabled(true); + this.setDrawTextEnabled(true); + this.setUndoEnabled(!itModel.undoQueue.isEmpty()); + this.setRedoEnabled(!itModel.redoQueue.isEmpty()); + + // force a re-layout + this.getRootPane().validate(); + } else { showError("File to open is not a usable image"); } @@ -976,7 +990,11 @@ @Action(enabledProperty = "fileCloseEnabled", selectedProperty = "fileCloseSelected") public void fileClose() { - + + // in case we were drawing + drawButtonGroup.clearSelection(); + imageArea.tearDownMouseListeners(); + // put the label back in this.setComponent(jLabel1); // empty the queues @@ -1001,7 +1019,7 @@ this.getRootPane().validate(); // resize the frame this.getFrame().pack(); - + } @Action @@ -1294,7 +1312,6 @@ private javax.swing.JButton undoButton; private javax.swing.JMenuItem usingMenuItem; // End of variables declaration//GEN-END:variables - // more variables private static Icon errorIcon; private static Icon infoIcon; @@ -1303,7 +1320,6 @@ private final Timer busyIconTimer; private final Icon idleIcon; private final Icon[] busyIcons = new Icon[15]; - private int busyIconIndex = 0; private JDialog aboutBox; private JDialog usingBox; @@ -1314,5 +1330,4 @@ private final JFileChooser imageChooser; // added to test new events 2009-03-20 private ImageToolsModel itModel; - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |