metasim 00/11/16 11:41:01
Modified: src/antidote/org/apache/tools/ant/gui/command OpenCmd.java
Added: src/antidote/org/apache/tools/ant/gui/command
EmacsNotifyCmd.java SaveAsCmd.java SaveCmd.java
Log:
Added save and saveas action implementation.
Revision Changes Path
1.2 +2 -3
jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/OpenCmd.java
Index: OpenCmd.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/OpenCmd.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- OpenCmd.java 2000/11/03 12:04:29 1.1
+++ OpenCmd.java 2000/11/16 19:40:56 1.2
@@ -64,7 +64,7 @@
* user for selecting a build file to open. If a file is selected then an
* OpenRequestEvent is posted.
*
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
* @author Simeon Fitch
*/
public class OpenCmd implements Command {
@@ -73,7 +73,7 @@
/** The application context */
private AppContext _context = null;
- /** Filter for showing only XML file.s */
+ /** Filter for showing only XML files. */
private FileFilter _filter = null;
/**
@@ -93,7 +93,6 @@
*
*/
public void execute() {
- // XXX need to set chooser text based on ResourceManager values.
JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(_filter);
int val = chooser.showOpenDialog(_context.getParentFrame());
1.1
jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/EmacsNotifyCmd.java
Index: EmacsNotifyCmd.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999, 2000 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.gui.command;
import org.apache.tools.ant.gui.AppContext;
import org.apache.tools.ant.gui.ide.EmacsNotifier;
/**
* Toggle on or off the sending of error events to emacs so that
* it can display the source of the error.
*
* @version $Revision: 1.1 $
* @author Simeon Fitch
*/
public class EmacsNotifyCmd implements Command {
/** Action command. */
public static final String ACTION_NAME = "notifyEmacs";
/** A global notifier can be used as it stores no state. */
private static EmacsNotifier _notifier = new EmacsNotifier();
/** Application context. */
private AppContext _context = null;
/** State notification should be in. */
private boolean _notify = false;
/**
* Standard ctor.
*
* @param context Application context.
* @param state True if notifying on, false for notifying off.
*/
public EmacsNotifyCmd(AppContext context, boolean state) {
_context = context;
_notify = state;
}
/**
* Turn on or off the notifying of emacs.
*
*/
public void execute() {
if(_notify) {
_context.addBuildListener(_notifier);
}
else {
_context.removeBuildListener(_notifier);
}
}
}
1.1
jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/SaveAsCmd.java
Index: SaveAsCmd.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999, 2000 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.gui.command;
import org.apache.tools.ant.gui.AppContext;
/**
* Command for doing a "Save as" type of save.
*
* @version $Revision: 1.1 $
* @author Simeon Fitch
*/
public class SaveAsCmd extends SaveCmd {
/** Name of the action the command maps to. */
public static final String ACTION_NAME = "saveas";
/**
* Standard ctor.
*
* @param context Application context.
*/
public SaveAsCmd(AppContext context) {
super(context, null);
}
}
1.1
jakarta-ant/src/antidote/org/apache/tools/ant/gui/command/SaveCmd.java
Index: SaveCmd.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999, 2000 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.tools.ant.gui.command;
import org.apache.tools.ant.gui.AppContext;
import org.apache.tools.ant.gui.ProjectProxy;
import org.apache.tools.ant.gui.event.ErrorEvent;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.tools.ant.gui.XMLFileFilter;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import javax.swing.JOptionPane;
/**
* Command to execute the saving of the current build file.
*
* @version $Revision: 1.1 $
* @author Simeon Fitch
*/
public class SaveCmd implements Command {
/** Name of the action the command maps to. */
public static final String ACTION_NAME = "save";
/** The application context */
private AppContext _context = null;
/** Filter for showing only XML files. */
private FileFilter _filter = null;
/** File to save to. */
private File _file = null;
/**
* Standard ctor with file.
*
* @param context Application context.
* @param file File to save to, or null.
*/
public SaveCmd(AppContext context, File file) {
_context = context;
_filter = new XMLFileFilter(_context.getResources());
_file = file;
}
/**
* Standard ctor.
*
* @param context Application context.
*/
public SaveCmd(AppContext context) {
this(context, context.getProject() == null ? null :
context.getProject().getFile());
}
/**
* Save the project to the current file name.
*
*/
public void execute() {
ProjectProxy project = _context.getProject();
if(project != null) {
if(_file == null) {
// XXX code here to select a file to save to.
JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(_filter);
int val = chooser.showSaveDialog(_context.getParentFrame());
if(val == JFileChooser.APPROVE_OPTION) {
_file = chooser.getSelectedFile();
if(_file.exists()) {
String title = _context.getResources().getString(
SaveCmd.class, "title");
String message = _context.getResources().getMessage(
SaveCmd.class, "overwrite",
new Object[] {_file.toString()});
val = JOptionPane.showConfirmDialog(
_context.getParentFrame(), message, title,
JOptionPane.YES_NO_OPTION);
// If cancelled unset file.
if(val != JOptionPane.YES_OPTION) {
_file = null;
}
}
}
}
if(_file != null) {
project.setFile(_file);
FileWriter out = null;
try {
out = new FileWriter(_file);
project.write(out);
}
catch(IOException ex) {
String message = _context.getResources().getMessage(
SaveCmd.class, "saveError",
new Object[] { _file.toString() });
_context.getEventBus().
postEvent(new ErrorEvent(_context, message));
}
finally {
if (out != null) {
try {
out.flush();
out.close();
}
catch(IOException ex) {
// Intentionally ignored.
}
}
}
}
}
else {
// We shouldn't ever get here.
String message = _context.getResources().getString(
SaveCmd.class, "noProject");
_context.getEventBus().
postEvent(new ErrorEvent(_context, message));
}
}
}