/* * * Perforce/JBuilder Opentool * Copyright (C) 2002 Mark Ackerman * * 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.ide.Browser; import com.borland.primetime.ide.Message; import com.borland.primetime.node.Node; import com.dafreels.opentools.Main; import com.dafreels.opentools.MessageWriter; import com.dafreels.opentools.actions.ui.AddFilesDialog; import com.dafreels.vcs.command.MessageFormatter; import com.dafreels.vcs.util.ActionImages; /** * Title: Perforce Open tool * Description: open and lock a file in Perforce * Copyright: Copyright (c) 2002 * Company: * @author Mark Ackerman * @version 1.0 */ public class LockAction extends PerforceAction { public LockAction(boolean onFileTabMenu) { super( "Lock", "Open and Lock file(s) at Depot", ActionImages.P4_LOCK, onFileTabMenu); } public void actionPerformed(Browser browser) { String changeList = null; com.dafreels.vcs.command.Command cmd = new com.dafreels.vcs.command.Command( com.dafreels.vcs.command.Command.LOCK); Node[] nodes = getSelectedNodes(browser, cmd); if (cmd.getPathCount() == 0) { return; } if (Main.m_props.askForEditChangeList()) { 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; } */ } //Get a list of the selected nodes new EditAction(m_onFileTabMenu).editFile(browser, changeList); if (changeList != null) { com.dafreels.vcs.command.Command cmd2 = new com.dafreels.vcs.command.Command( com.dafreels.vcs.command.Command.LOCK); cmd2.addPath("-c " + changeList); cmd2.addPaths(cmd.getPaths()); cmd = cmd2; } runCommand(browser, cmd, true); //Refresh the nodes if (nodes != null) { Main.refreshNodes(nodes); } } protected boolean outputMessages(boolean outputExtraLines) { boolean success = MessageFormatter.getInstance().getErrorMessageCount() == 0; MessageWriter.outputErrorMessages(MessageFormatter.getInstance()); if (Main.m_props.showOutput()) { //Output the p4 messages MessageWriter.outputMessages(MessageFormatter.getInstance()); } else { String message = ""; Message msg; while ((message = MessageFormatter.getNextMessage()) != null) { if (message.indexOf("already locked by") > -1) { msg = new Message(message); msg.setForeground(java.awt.Color.red); Browser.getActiveBrowser().getMessageView().addMessage( Main.PERFORCEMESSAGES, msg); } } } return success; } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 4090 | David Freels |
Fixed bug where paths with spaces would not work. Also checked in new code or JBuilderX. |