SVN: merge from action

(cherry picked from commit 6f4593f3008e95621677c0f01b0a44b050e9bdbb)
This commit is contained in:
irengrig
2010-07-14 16:11:36 +04:00
parent 8bfb9150de
commit aa86e7079a
3 changed files with 71 additions and 10 deletions
+4 -1
View File
@@ -98,8 +98,11 @@
<add-to-group group-id="SubversionGroup" relative-to-action="Subversion.Add" anchor="after"/>
</group>
<action class="org.jetbrains.idea.svn.dialogs.MergeFromAction" id="Subversion.MergeFrom">
<add-to-group relative-to-action="Vcs.IntegrateProject" anchor="after" group-id="VcsGlobalGroup"/>
</action>
<action class="org.jetbrains.idea.svn.actions.CleanupProjectAction" id="Subversion.CleanupProject">
<add-to-group group-id="VcsGlobalGroup" anchor="after" relative-to-action="Vcs.IntegrateProject"/>
<add-to-group group-id="VcsGlobalGroup" anchor="after" relative-to-action="Subversion.MergeFrom"/>
</action>
</actions>
@@ -182,6 +182,16 @@ public class CopiesPanel {
final JTextField format = createField("Format: " + wcInfo.getFormat().getName());
copyPanel.add(format, gb1);
gb1.gridx = 2;
final LinkLabel changeFormatLabel = new LinkLabel("Change", null, new LinkListener() {
public void linkSelected(LinkLabel aSource, Object aLinkData) {
changeFormat(wcInfo);
}
});
copyPanel.add(changeFormatLabel, gb1);
setFocusableForLinks(changeFormatLabel);
gb1.gridx = 0;
++ gb1.gridy;
final JTextField depth = createField("Depth: " + wcInfo.getStickyDepth().getName());
copyPanel.add(depth, gb1);
@@ -224,17 +234,9 @@ public class CopiesPanel {
gb1.gridwidth = 1;
gb1.insets.top = 5;
++ gb1.gridy;
final LinkLabel formatLabel = new LinkLabel("Change Format", null, new LinkListener() {
public void linkSelected(LinkLabel aSource, Object aLinkData) {
changeFormat(wcInfo);
}
});
copyPanel.add(formatLabel, gb1);
setFocusableForLinks(formatLabel);
final VirtualFile vf = lfs.refreshAndFindFileByIoFile(new File(wcInfo.getPath()));
final VirtualFile root = (vf == null) ? wcInfo.getVcsRoot() : vf;
++ gb1.gridx;
final LinkLabel configureBranchesLabel = new LinkLabel("Configure Branches", null, new LinkListener() {
public void linkSelected(LinkLabel aSource, Object aLinkData) {
BranchConfigurationDialog.configureBranches(myProject, root, true);
@@ -246,7 +248,7 @@ public class CopiesPanel {
copyPanel.add(configureBranchesLabel, gb1);
setFocusableForLinks(configureBranchesLabel);
++ gb1.gridx;
++ gb1.gridy;
final LinkLabel mergeLabel = new LinkLabel("Merge from...", null);
mergeLabel.setListener(new LinkListener() {
public void linkSelected(LinkLabel aSource, Object aLinkData) {
@@ -256,6 +258,9 @@ public class CopiesPanel {
if (root == null) {
mergeLabel.setEnabled(false); //+-
}
final Font font = mergeLabel.getFont();
mergeLabel.setFont(font.deriveFont(Font.BOLD));
mergeLabel.setForeground(mergeLabel.getForeground().darker());
copyPanel.add(mergeLabel, gb1);
setFocusableForLinks(mergeLabel);
}
@@ -0,0 +1,53 @@
/*
* Copyright 2000-2010 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.idea.svn.dialogs;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentManager;
import org.jetbrains.idea.svn.SvnBundle;
public class MergeFromAction extends DumbAwareAction {
public MergeFromAction() {
super("Merge from...", "One-click merge for feature branches", null);
}
@Override
public void actionPerformed(AnActionEvent e) {
final DataContext dc = e.getDataContext();
final Project project = PlatformDataKeys.PROJECT.getData(dc);
if (project == null) return;
final ToolWindowManager manager = ToolWindowManager.getInstance(project);
if (manager != null) {
final ToolWindow window = manager.getToolWindow(ChangesViewContentManager.TOOLWINDOW_ID);
if (window != null) {
window.show(null);
final ContentManager cm = window.getContentManager();
final Content content = cm.findContent(SvnBundle.message("dialog.show.svn.map.title"));
if (content != null) {
cm.setSelectedContent(content, true);
}
}
}
}
}