/*
*
* Perforce/JBuilder Opentool
* Copyright (C) 2001 David Freels
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.dafreels.opentools.actions;
//JBuilder
import com.borland.primetime.*;
import com.borland.primetime.actions.*;
import com.borland.primetime.node.*;
import com.borland.jbuilder.*;
import com.borland.primetime.ide.*;
//Java
import javax.swing.*;
import java.awt.event.*;
import java.awt.Cursor;
//JBuilder OT
import com.dafreels.opentools.*;
import com.dafreels.opentools.properties.*;
import com.dafreels.opentools.actions.ui.*;
//Perforce VCS
import com.dafreels.vcs.command.*;
import com.dafreels.vcs.util.ExtensionRegistry;
import com.dafreels.vcs.util.ActionImages;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company: DF Systems
* @author David Freels
* @version 1.0
*/
public class EditAction extends PerforceAction
{
public EditAction(boolean onFileTabMenu)
{
super("Edit","Open file(s) for edit",ActionImages.P4_EDIT, onFileTabMenu);
}
public void actionPerformed(Browser browser)
{
String changeList = null;
if ( Main.m_props.askForEditChangeList() )
{
com.dafreels.vcs.command.Command cmd =
new com.dafreels.vcs.command.Command(com.dafreels.vcs.command.Command.EDIT);
Node[] nodes = getSelectedNodes(browser, cmd);
AddFilesDialog dialog = new AddFilesDialog(browser, true);
dialog.setTitle("Choose ChangeList");
dialog.fillForm(cmd.getPaths());
dialog.setVisible(true);
if ( dialog.wasCanceled() )
{
return;
}
changeList = dialog.getChangelist();
/*
if ( changeList != null )
{
com.dafreels.vcs.command.Command cmd2 =
new com.dafreels.vcs.command.Command(com.dafreels.vcs.command.Command.ADD);
cmd2.addPath("-c "+changeList);
cmd2.addPaths(dialog.getFiles());
cmd = cmd2;
}
*/
}
editFile(browser, changeList);
}
public void editFile(Browser browser, String changeList)
{
//Get a list of the selected nodes
com.dafreels.vcs.command.Command cmd =
new com.dafreels.vcs.command.Command(com.dafreels.vcs.command.Command.EDIT);
if ( changeList != null )
{
cmd.addPath("-c "+changeList);
}
Node[] nodes = getSelectedNodes(browser, cmd);
/*
String tempFileName = "";
if ( m_onFileTabMenu )
{
Node node = browser.getActiveNode();
if ( node != null )
{
tempFileName = node.getLongDisplayName();
if(m_reg.validateFile(tempFileName))
{
cmd.addPath(tempFileName);
nodes = new Node[1];
nodes[0] = node;
}
else
{
return;
}
}
else
{
return;
}
}
else
{
nodes = browser.getProjectView().getSelectedNodes(browser.getActiveProject());
//StringBuffer sb = new StringBuffer("edit ");
for(int i = 0; i < nodes.length; i++)
{
tempFileName = ((FileNode)nodes[i]).getLongDisplayName();
if(m_reg.validateFile(tempFileName))
{
//sb.append(tempFileName+" ");
cmd.addPath(tempFileName);
}
}
}
*/
if ( cmd.getPathCount() == 0 )
{
return;
}
try
{
browser.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
//Run the command
//CommandTool.runCommand(sb.toString(), Main.m_props);
CommandTool.runCommand(cmd, Main.m_props);
//Output the p4 messages
MessageWriter.outputErrorMessages(MessageFormatter.getInstance());
if ( Main.m_props.showOutput())
{
MessageWriter.outputMessages(MessageFormatter.getInstance());
}
}
finally
{
browser.setCursor(Cursor.getDefaultCursor());
}
//Force JBuilder to check the file status
Main.refreshNodes(nodes);
}
}