diff options
author | Andrew Gvozdev | 2010-08-14 02:00:19 +0000 |
---|---|---|
committer | Andrew Gvozdev | 2010-08-14 02:00:19 +0000 |
commit | 98b74283771864d44ab4fee3c86378ce4c43c645 (patch) | |
tree | 50ead2260d027843c7f5119f3bb72b11a5fe96a3 | |
parent | 44fab94a9ba82ea0960b34bb5aab7f20d5162dc9 (diff) | |
download | org.eclipse.cdt-98b74283771864d44ab4fee3c86378ce4c43c645.tar.gz org.eclipse.cdt-98b74283771864d44ab4fee3c86378ce4c43c645.tar.xz org.eclipse.cdt-98b74283771864d44ab4fee3c86378ce4c43c645.zip |
bug 322695: Can't access preferences of any unrelated CDT project having "bad" project in workspace
=1.19
-rw-r--r-- | core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/RefsTab.java | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/RefsTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/RefsTab.java index f0cad458e85..4558fe5b29f 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/RefsTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/RefsTab.java @@ -39,6 +39,7 @@ import org.eclipse.swt.widgets.TreeItem; import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; import org.eclipse.cdt.core.settings.model.ICResourceDescription; +import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.internal.ui.newui.Messages; @@ -52,7 +53,7 @@ public class RefsTab extends AbstractCPropertyTab { public Composite comp; private Tree tree; - static private final String ACTIVE = "[" + Messages.RefsTab_3 + "]"; //$NON-NLS-1$ //$NON-NLS-2$ + static private final String ACTIVE = "[" + Messages.RefsTab_Active + "]"; //$NON-NLS-1$ //$NON-NLS-2$ private static final int EXPAND_ALL_BUTTON = 0; private static final int COLLAPSE_ALL_BUTTON = 1; @@ -63,8 +64,8 @@ public class RefsTab extends AbstractCPropertyTab { public void createControls(Composite parent) { super.createControls(parent); initButtons(new String[] { - Messages.RefsTab_0, - Messages.RefsTab_2, + Messages.RefsTab_ExpandAll, + Messages.RefsTab_CollapseAll, null, MOVEUP_STR, MOVEDOWN_STR}, 120); @@ -73,10 +74,10 @@ public class RefsTab extends AbstractCPropertyTab { tree = new Tree(usercomp, SWT.SINGLE | SWT.CHECK | SWT.BORDER); tree.setLayoutData(new GridData(GridData.FILL_BOTH)); tree.getAccessible().addAccessibleListener( - new AccessibleAdapter() { + new AccessibleAdapter() { @Override public void getName(AccessibleEvent e) { - e.result = Messages.RefsTab_4; + e.result = Messages.RefsTab_ProjectsList; } } ); @@ -134,12 +135,12 @@ public class RefsTab extends AbstractCPropertyTab { tree.addTreeListener(new TreeListener() { public void treeCollapsed(TreeEvent e) { - updateExpandButtons(e, false, true); + updateExpandButtons(e, false, true); } public void treeExpanded(TreeEvent e) { - updateExpandButtons(e, true, false); + updateExpandButtons(e, true, false); }}); - + } @Override @@ -148,7 +149,7 @@ public class RefsTab extends AbstractCPropertyTab { { case COLLAPSE_ALL_BUTTON: case EXPAND_ALL_BUTTON: - for (TreeItem item : tree.getItems()) + for (TreeItem item : tree.getItems()) item.setExpanded(n==EXPAND_ALL_BUTTON); updateButtons(); break; @@ -185,7 +186,7 @@ public class RefsTab extends AbstractCPropertyTab { if (page.isMultiCfg()) { setAllVisible(false, null); } else { - if (!usercomp.isVisible()) + if (!usercomp.isVisible()) setAllVisible(true, null); initData(); } @@ -218,7 +219,7 @@ public class RefsTab extends AbstractCPropertyTab { /** * Initialises the tree. - * + * * TreeItems are either * TI: Text , Data * {IProject.getName()} , {IProject} @@ -253,8 +254,15 @@ public class RefsTab extends AbstractCPropertyTab { for (String pname : projects) { // The referenced configuration ID String ref = refs.get(pname); - IProject prj = p.getWorkspace().getRoot().getProject(pname); - ICConfigurationDescription[] cfgs = page.getCfgsReadOnly(prj); + IProject prj; + ICConfigurationDescription[] cfgs; + try { + prj = p.getWorkspace().getRoot().getProject(pname); + cfgs = page.getCfgsReadOnly(prj); + } catch (Exception e) { + CUIPlugin.log(Messages.RefsTab_ConfigurationsAccessError+pname, e); + continue; + } if (cfgs == null || cfgs.length == 0) { // If the project is referenced, then make sure the user knows about it! if (ref != null) { @@ -338,7 +346,7 @@ public class RefsTab extends AbstractCPropertyTab { getResDesc().getConfiguration().setReferenceInfo(new HashMap<String, String>()); initData(); } - + @Override protected void updateButtons() { updateExpandButtons(null, false, false); @@ -359,11 +367,11 @@ public class RefsTab extends AbstractCPropertyTab { continue; if (item.getExpanded()) cntE = true; - else + else cntC = true; } - buttonSetEnabled(EXPAND_ALL_BUTTON, cntC); // Expand All - buttonSetEnabled(COLLAPSE_ALL_BUTTON, cntE); // Collapse all + buttonSetEnabled(EXPAND_ALL_BUTTON, cntC); // Expand All + buttonSetEnabled(COLLAPSE_ALL_BUTTON, cntE); // Collapse all } /** @@ -375,7 +383,7 @@ public class RefsTab extends AbstractCPropertyTab { // Is a project selected? if (ti.getParentItem() == null && ti.getChecked()) { int index = tree.indexOf(ti); - buttonSetEnabled(MOVEUP_BUTTON, index > 0); + buttonSetEnabled(MOVEUP_BUTTON, index > 0); buttonSetEnabled(MOVEDOWN_BUTTON, index < tree.getItemCount() - 1); return; } |