diff --git a/platform/platform-resources/src/idea/PlatformActions.xml b/platform/platform-resources/src/idea/PlatformActions.xml index 371afc7d3b2a..26e2812f9500 100644 --- a/platform/platform-resources/src/idea/PlatformActions.xml +++ b/platform/platform-resources/src/idea/PlatformActions.xml @@ -540,6 +540,8 @@ + + diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/actions/popup/SetNoOperation.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/actions/popup/SetNoOperation.java new file mode 100644 index 000000000000..f893ac644389 --- /dev/null +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/actions/popup/SetNoOperation.java @@ -0,0 +1,56 @@ +/* + * Copyright 2000-2012 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 com.intellij.openapi.diff.impl.dir.actions.popup; + +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.diff.impl.dir.DirDiffElement; +import com.intellij.openapi.diff.impl.dir.DirDiffOperation; +import com.intellij.openapi.diff.impl.dir.DirDiffTableModel; + +import javax.swing.*; + +/** + * @author lene + * Date: 23.04.12 + */ +public class SetNoOperation extends AnAction { + @Override + public void actionPerformed(AnActionEvent e) { + final DirDiffTableModel model = SetOperationToBase.getModel(e); + final JTable table = SetOperationToBase.getTable(e); + assert model != null && table != null; + for (DirDiffElement element : model.getSelectedElements()) { + element.setOperation(DirDiffOperation.NONE); + } + table.repaint(); + } + + @Override + public final void update(AnActionEvent e) { + final DirDiffTableModel model = SetOperationToBase.getModel(e); + final JTable table = SetOperationToBase.getTable(e); + if (table != null && model != null) { + for (DirDiffElement element : model.getSelectedElements()) { + if (element.getOperation() != DirDiffOperation.NONE) { + e.getPresentation().setEnabled(true); + return; + } + } + } + e.getPresentation().setEnabled(false); + } +} diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/actions/popup/SetOperationToBase.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/actions/popup/SetOperationToBase.java index 27aca25a9961..a2b361464fd9 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/actions/popup/SetOperationToBase.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/dir/actions/popup/SetOperationToBase.java @@ -68,7 +68,7 @@ public abstract class SetOperationToBase extends AnAction { protected abstract boolean isEnabledFor(DirDiffElement element); @Nullable - private static JTable getTable(AnActionEvent e) { + static JTable getTable(AnActionEvent e) { return e.getData(DirDiffPanel.DIR_DIFF_TABLE); }