From 82739861afa26f5cd1abe1328a8cbce217e95685 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Fri, 11 Apr 2014 16:01:50 +0200 Subject: [PATCH] IDEA-122292 Plugins list: checkbox missing padding/not usable --- .../plugins/InstalledPluginsTableModel.java | 32 +++++++++++++++++-- .../com/intellij/ide/plugins/PluginTable.java | 4 +++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java index 9ca9addc7da2..aaf73b4c6ff3 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java @@ -28,6 +28,7 @@ import com.intellij.openapi.updateSettings.impl.UpdateChecker; import com.intellij.openapi.updateSettings.impl.UpdateSettings; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.JDOMExternalizableStringList; +import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.FileStatus; import com.intellij.openapi.vfs.VfsUtil; @@ -76,7 +77,11 @@ public class InstalledPluginsTableModel extends PluginTableModel { public InstalledPluginsTableModel() { - super.columns = new ColumnInfo[]{new MyPluginManagerColumnInfo(), new EnabledPluginInfo()}; + final MyPluginManagerColumnInfo infoColumn = new MyPluginManagerColumnInfo(); + final EnabledPluginInfo enabledColumn = new EnabledPluginInfo(); + final Spacer spacer = new Spacer(); + super.columns = SystemInfo.isMac ? new ColumnInfo[]{infoColumn, enabledColumn, spacer} + :new ColumnInfo[]{infoColumn, enabledColumn}; view = new ArrayList(Arrays.asList(PluginManager.getPlugins())); view.addAll(myInstalled); reset(view); @@ -85,7 +90,6 @@ public class InstalledPluginsTableModel extends PluginTableModel { @NonNls final String s = iterator.next().getPluginId().getIdString(); if ("com.intellij".equals(s)) iterator.remove(); } - setSortKey(new RowSorter.SortKey(getNameColumn(), SortOrder.ASCENDING)); } @@ -373,6 +377,30 @@ public class InstalledPluginsTableModel extends PluginTableModel { return true; } + private class Spacer extends ColumnInfo { + public Spacer() { + super(""); + } + + public Object valueOf(IdeaPluginDescriptor ideaPluginDescriptor) { + return null; + } + + public boolean isCellEditable(final IdeaPluginDescriptor ideaPluginDescriptor) { + return false; + } + + @Nullable + @Override + public TableCellRenderer getRenderer(IdeaPluginDescriptor descriptor) { + return new DefaultTableCellRenderer(); + } + + public Class getColumnClass() { + return Spacer.class; + } + } + private class EnabledPluginInfo extends ColumnInfo { public EnabledPluginInfo() { diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginTable.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginTable.java index c902aa1bd1a7..847cad15c336 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginTable.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginTable.java @@ -15,6 +15,7 @@ */ package com.intellij.ide.plugins; +import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.TableUtil; import com.intellij.ui.table.JBTable; @@ -85,6 +86,9 @@ public class PluginTable extends JBTable { }); if (model.getColumnCount() > 1) { setColumnWidth(1, new JCheckBox().getPreferredSize().width + 4); + if (SystemInfo.isMac && model.getColumnCount() == 3) { + setColumnWidth(2, 8); + } } }