mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
do not refresh all table on every select event
This commit is contained in:
+9
-1
@@ -33,6 +33,7 @@ import com.intellij.ide.TreeExpander;
|
||||
import com.intellij.ide.ui.search.SearchUtil;
|
||||
import com.intellij.ide.ui.search.SearchableOptionsRegistrar;
|
||||
import com.intellij.lang.annotation.HighlightSeverity;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey;
|
||||
@@ -43,6 +44,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.Splitter;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.profile.ApplicationProfileManager;
|
||||
@@ -130,6 +132,10 @@ public class SingleInspectionProfilePanel extends JPanel {
|
||||
private Splitter myMainSplitter;
|
||||
|
||||
private String[] myInitialScopesOrder;
|
||||
private Disposable myDisposable = new Disposable() {
|
||||
@Override
|
||||
public void dispose() {}
|
||||
};
|
||||
|
||||
public SingleInspectionProfilePanel(@NotNull InspectionProjectProfileManager projectProfileManager,
|
||||
@NotNull String inspectionProfileName,
|
||||
@@ -501,7 +507,7 @@ public class SingleInspectionProfilePanel extends JPanel {
|
||||
public InspectionProfileImpl getInspectionProfile() {
|
||||
return mySelectedProfile;
|
||||
}
|
||||
});
|
||||
}, myDisposable);
|
||||
myTreeTable.setTreeCellRenderer(renderer);
|
||||
myTreeTable.setRootVisible(false);
|
||||
UIUtil.setLineStyleAngled(myTreeTable.getTree());
|
||||
@@ -1020,6 +1026,8 @@ public class SingleInspectionProfilePanel extends JPanel {
|
||||
}
|
||||
}
|
||||
mySelectedProfile = null;
|
||||
Disposer.dispose(myDisposable);
|
||||
myDisposable = null;
|
||||
}
|
||||
|
||||
private JPanel createInspectionProfileSettingsPanel() {
|
||||
|
||||
+14
-9
@@ -23,6 +23,7 @@ import com.intellij.codeInspection.ex.ToolsImpl;
|
||||
import com.intellij.ide.IdeTooltip;
|
||||
import com.intellij.ide.IdeTooltipManager;
|
||||
import com.intellij.lang.annotation.HighlightSeverity;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
@@ -34,9 +35,10 @@ import com.intellij.ui.DoubleClickListener;
|
||||
import com.intellij.ui.treeStructure.treetable.TreeTable;
|
||||
import com.intellij.ui.treeStructure.treetable.TreeTableModel;
|
||||
import com.intellij.ui.treeStructure.treetable.TreeTableTree;
|
||||
import com.intellij.util.Alarm;
|
||||
import com.intellij.util.SingleAlarm;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.TextTransferable;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -62,8 +64,8 @@ public class InspectionsConfigTreeTable extends TreeTable {
|
||||
private final static int SEVERITIES_COLUMN = 1;
|
||||
private final static int IS_ENABLED_COLUMN = 2;
|
||||
|
||||
public InspectionsConfigTreeTable(final InspectionsConfigTreeTableSettings settings) {
|
||||
super(new InspectionsConfigTreeTableModel(settings));
|
||||
public InspectionsConfigTreeTable(final InspectionsConfigTreeTableSettings settings, Disposable parentDisposable) {
|
||||
super(new InspectionsConfigTreeTableModel(settings, parentDisposable));
|
||||
|
||||
final TableColumn severitiesColumn = getColumnModel().getColumn(SEVERITIES_COLUMN);
|
||||
severitiesColumn.setMaxWidth(20);
|
||||
@@ -180,9 +182,16 @@ public class InspectionsConfigTreeTable extends TreeTable {
|
||||
private final InspectionsConfigTreeTableSettings mySettings;
|
||||
private TreeTable myTreeTable;
|
||||
|
||||
public InspectionsConfigTreeTableModel(final InspectionsConfigTreeTableSettings settings) {
|
||||
private SingleAlarm myUpdateAlarm;
|
||||
|
||||
public InspectionsConfigTreeTableModel(final InspectionsConfigTreeTableSettings settings, Disposable parentDisposable) {
|
||||
super(settings.getRoot());
|
||||
mySettings = settings;
|
||||
myUpdateAlarm = new SingleAlarm(new Runnable() {
|
||||
public void run() {
|
||||
((AbstractTableModel)myTreeTable.getModel()).fireTableDataChanged();
|
||||
}
|
||||
}, 10, Alarm.ThreadToUse.SWING_THREAD, parentDisposable);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -275,11 +284,7 @@ public class InspectionsConfigTreeTable extends TreeTable {
|
||||
mySettings.onChanged(aNode);
|
||||
}
|
||||
if (myTreeTable != null) {
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
public void run() {
|
||||
((AbstractTableModel)myTreeTable.getModel()).fireTableDataChanged();
|
||||
}
|
||||
});
|
||||
myUpdateAlarm.cancelAndRequest();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user