/* * * 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 java.io.File; import javax.swing.Icon; import com.borland.jbuilder.node.JBProject; import com.borland.primetime.ide.Browser; import com.borland.primetime.node.FileNode; import com.borland.primetime.node.Node; import com.borland.primetime.vfs.Url; import com.dafreels.opentools.Main; import com.dafreels.vcs.util.ActionImages; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: DF Systems * @author David Freels * @version 1.0 */ public class RedoSyncAction extends PerforceAction { public RedoSyncAction(boolean onFileTabMenu) { super( "Redo sync to the same revision", "Refresh files from Depot", ActionImages.P4_REDO_SYNC, onFileTabMenu); } protected RedoSyncAction( String text, String toolTip, Icon icon, boolean onFileTabMenu) { super(text, toolTip, icon, onFileTabMenu); } public void actionPerformed(Browser browser) { //Get a list of the selected nodes Node[] nodes; com.dafreels.vcs.command.Command cmd = new com.dafreels.vcs.command.Command(getCommand()); if (m_onFileTabMenu) { nodes = getSelectedNodes(browser, cmd); } else { nodes = browser.getProjectView().getSelectedNodes(browser.getActiveProject()); String tempFileName = ""; for (int i = 0; i < nodes.length; i++) { //See if this is a directory or auto source package if (nodes[i].getDisplayName() != null && !nodes[i].getDisplayName().endsWith(".java")) { JBProject project = (JBProject) nodes[i].getProject(); Url[] sourcePaths = project.getPaths().getSourcePath(); String packagePath; for (int u = 0; u < sourcePaths.length; u++) { //Url defaultSourcePath = project.getPaths().getDefaultSourcePath(); packagePath = sourcePaths[u].getFileObject().getAbsolutePath() + File.separator + nodes[i].getDisplayName().replace('.', File.separatorChar); File f = new File(packagePath); if (!f.exists() || !f.isDirectory()) { continue; } try { packagePath = f.getCanonicalPath(); } catch (java.io.IOException ioe) { } cmd.addPath(packagePath + "..."); } } else { tempFileName = ((FileNode) nodes[i]).getLongDisplayName(); cmd.addPath(tempFileName); } } } if (cmd.getPathCount() == 0) { return; } runCommand(browser, cmd); //Run the command //Force JBuilder to check the file status if (nodes != null) { Main.refreshNodes(nodes); } } /** * append "#have" the filename * @param fileName the filename on disk * @return the filename with "#have" appended. */ protected String fixupName(String fileName) { return fileName + "#have"; } protected String getCommand() { return com.dafreels.vcs.command.Command.SYNC + " -f "; } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#3 | 4090 | David Freels |
Fixed bug where paths with spaces would not work. Also checked in new code or JBuilderX. |
||
#2 | 3651 | David Freels | Remove file extension limitations. | ||
#1 | 2994 | Mark E. Ackerman |
changed for version 1.0.7. Added display of submitted changelists, redo sync, updated icons, misc bug fixes and improvements. |