mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 06:39:38 +07:00
presentation for comparison modes
This commit is contained in:
@@ -55,6 +55,10 @@ public class DirDiffSettings {
|
||||
public static enum CompareMode {
|
||||
CONTENT, // the most honest, the slowest. Compares size, if equal compares contents. Ignores timestamps
|
||||
SIZE, // Compares size only
|
||||
TIMESTAMP // Compares size, if equal compares timestamps
|
||||
TIMESTAMP; // Compares size, if equal compares timestamps
|
||||
|
||||
public String getPresentableName() {
|
||||
return StringUtil.capitalize(name().toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ import com.intellij.ide.diff.DirDiffSettings;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.diff.impl.dir.DirDiffTableModel;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.Icons;
|
||||
import com.intellij.util.ui.EmptyIcon;
|
||||
|
||||
@@ -37,7 +36,7 @@ class ChangeCompareModeAction extends AnAction {
|
||||
private final DirDiffSettings.CompareMode myMode;
|
||||
|
||||
ChangeCompareModeAction(DirDiffTableModel model, DirDiffSettings.CompareMode mode) {
|
||||
super(StringUtil.capitalize(mode.name().toLowerCase()));
|
||||
super(mode.getPresentableName());
|
||||
myModel = model;
|
||||
myMode = mode;
|
||||
}
|
||||
|
||||
@@ -16,12 +16,16 @@
|
||||
package com.intellij.openapi.diff.impl.dir.actions;
|
||||
|
||||
import com.intellij.ide.diff.DirDiffSettings;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.intellij.openapi.actionSystem.ex.ComboBoxAction;
|
||||
import com.intellij.openapi.diff.impl.dir.DirDiffTableModel;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
@@ -29,20 +33,39 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class ChangeCompareModeGroup extends ComboBoxAction {
|
||||
private final DefaultActionGroup myGroup;
|
||||
private DirDiffSettings mySettings;
|
||||
|
||||
public ChangeCompareModeGroup(DirDiffTableModel model) {
|
||||
getTemplatePresentation().setText("Compare by");
|
||||
mySettings = model.getSettings();
|
||||
getTemplatePresentation().setText(mySettings.compareMode.getPresentableName());
|
||||
final ArrayList<ChangeCompareModeAction> actions = new ArrayList<ChangeCompareModeAction>();
|
||||
if (model.getSettings().showCompareModes) {
|
||||
final ArrayList<ChangeCompareModeAction> actions = new ArrayList<ChangeCompareModeAction>();
|
||||
for (DirDiffSettings.CompareMode mode : DirDiffSettings.CompareMode.values()) {
|
||||
actions.add(new ChangeCompareModeAction(model, mode));
|
||||
}
|
||||
myGroup = new DefaultActionGroup(actions.toArray(new ChangeCompareModeAction[actions.size()]));
|
||||
} else {
|
||||
getTemplatePresentation().setEnabled(false);
|
||||
getTemplatePresentation().setVisible(false);
|
||||
myGroup = new DefaultActionGroup();
|
||||
}
|
||||
else {
|
||||
getTemplatePresentation().setVisible(false);
|
||||
getTemplatePresentation().setEnabled(false);
|
||||
}
|
||||
myGroup = new DefaultActionGroup(actions.toArray(new ChangeCompareModeAction[actions.size()]));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(AnActionEvent e) {
|
||||
super.update(e);
|
||||
getTemplatePresentation().setText(mySettings.compareMode.getPresentableName());
|
||||
e.getPresentation().setText(mySettings.compareMode.getPresentableName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public JComponent createCustomComponent(Presentation presentation) {
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
final JLabel label = new JLabel("Compare by:");
|
||||
panel.add(label, BorderLayout.WEST);
|
||||
panel.add(super.createCustomComponent(presentation).getComponent(0), BorderLayout.CENTER);
|
||||
panel.setBorder(IdeBorderFactory.createEmptyBorder(2, 6, 2, 0));
|
||||
return panel;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user