1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-06 15:55:47 +02:00

IllegalArgumentException resizing ToolSettingsTab, bug 242524.

This commit is contained in:
Markus Schorn 2008-08-01 08:07:15 +00:00
parent 1cd6b6c8a9
commit 4790fbf198

View file

@ -76,6 +76,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
private IResourceInfo fInfo; private IResourceInfo fInfo;
@Override
public void createControls(Composite par) { public void createControls(Composite par) {
super.createControls(par); super.createControls(par);
usercomp.setLayout(new GridLayout()); usercomp.setLayout(new GridLayout());
@ -96,6 +97,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
createEditArea(sashForm); createEditArea(sashForm);
usercomp.addControlListener(new ControlAdapter() { usercomp.addControlListener(new ControlAdapter() {
@Override
public void controlResized(ControlEvent e) { public void controlResized(ControlEvent e) {
specificResize(); specificResize();
}}); }});
@ -109,7 +111,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
Point p2 = optionList.getTree().getSize(); Point p2 = optionList.getTree().getSize();
Point p3 = usercomp.getSize(); Point p3 = usercomp.getSize();
p1.x += calcExtra(); p1.x += calcExtra();
if (p1.x < p2.x || (p2.x * 2 < p3.x)) { if (p3.x >= p1.x && (p1.x < p2.x || (p2.x * 2 < p3.x))) {
optionList.getTree().setSize(p1.x , p2.y); optionList.getTree().setSize(p1.x , p2.y);
sashForm.setWeights(new int[] {p1.x, (p3.x - p1.x)}); sashForm.setWeights(new int[] {p1.x, (p3.x - p1.x)});
} }
@ -131,6 +133,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
optionList.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); optionList.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
optionList.setLabelProvider(new ToolListLabelProvider()); optionList.setLabelProvider(new ToolListLabelProvider());
optionList.addFilter(new ViewerFilter() { optionList.addFilter(new ViewerFilter() {
@Override
public boolean select(Viewer viewer, public boolean select(Viewer viewer,
Object parent, Object parent,
Object element) { Object element) {
@ -161,7 +164,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
ListIterator<AbstractToolSettingUI> iter = pages.listIterator(); ListIterator<AbstractToolSettingUI> iter = pages.listIterator();
while (iter.hasNext()) { while (iter.hasNext()) {
AbstractToolSettingUI page = (AbstractToolSettingUI) iter.next(); AbstractToolSettingUI page = iter.next();
if (page.isFor(optionHolder, category)) { if (page.isFor(optionHolder, category)) {
currentSettingsPage = page; currentSettingsPage = page;
break; break;
@ -214,7 +217,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
List<AbstractToolSettingUI> pages = getPagesForConfig(); List<AbstractToolSettingUI> pages = getPagesForConfig();
ListIterator<AbstractToolSettingUI> iter = pages.listIterator(); ListIterator<AbstractToolSettingUI> iter = pages.listIterator();
while (iter.hasNext()) { while (iter.hasNext()) {
AbstractToolSettingUI page = (AbstractToolSettingUI) iter.next(); AbstractToolSettingUI page = iter.next();
if (page.isFor(tool, null)) { if (page.isFor(tool, null)) {
currentSettingsPage = page; currentSettingsPage = page;
break; break;
@ -271,6 +274,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
settingsPageContainer.layout(); settingsPageContainer.layout();
} }
@Override
public void setVisible(boolean visible){ public void setVisible(boolean visible){
if(visible){ if(visible){
selectedElement = null; selectedElement = null;
@ -315,7 +319,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
} }
if (selectedElement == null) { if (selectedElement == null) {
selectedElement = (ToolListElement)(newElements != null && newElements.length > 0 ? newElements[0] : null); selectedElement = (newElements != null && newElements.length > 0 ? newElements[0] : null);
} }
if (selectedElement != null) { if (selectedElement != null) {
@ -400,6 +404,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
* (non-Javadoc) * (non-Javadoc)
* @see org.eclipse.cdt.ui.dialogs.ICOptionPage#performDefaults() * @see org.eclipse.cdt.ui.dialogs.ICOptionPage#performDefaults()
*/ */
@Override
protected void performDefaults() { protected void performDefaults() {
if (page.isForProject()) { if (page.isForProject()) {
ManagedBuildManager.resetConfiguration(page.getProject(), getCfg()); ManagedBuildManager.resetConfiguration(page.getProject(), getCfg());
@ -474,7 +479,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
case IOption.UNDEF_LIBRARY_PATHS: case IOption.UNDEF_LIBRARY_PATHS:
case IOption.UNDEF_LIBRARY_FILES: case IOption.UNDEF_LIBRARY_FILES:
case IOption.UNDEF_MACRO_FILES: case IOption.UNDEF_MACRO_FILES:
String[] data = (String[])((List<String>)op1.getValue()).toArray(new String[0]); String[] data = ((List<String>)op1.getValue()).toArray(new String[0]);
ManagedBuildManager.setOption(res, dst, op2, data); ManagedBuildManager.setOption(res, dst, op2, data);
break; break;
default : default :
@ -537,7 +542,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
*/ */
private List<AbstractToolSettingUI> getPagesForConfig() { private List<AbstractToolSettingUI> getPagesForConfig() {
if (getCfg() == null) return null; if (getCfg() == null) return null;
List<AbstractToolSettingUI> pages = (List<AbstractToolSettingUI>) configToPageListMap.get(getCfg().getId()); List<AbstractToolSettingUI> pages = configToPageListMap.get(getCfg().getId());
if (pages == null) { if (pages == null) {
pages = new ArrayList<AbstractToolSettingUI>(); pages = new ArrayList<AbstractToolSettingUI>();
configToPageListMap.put(getCfg().getId(), pages); configToPageListMap.put(getCfg().getId(), pages);
@ -557,7 +562,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
if (pages == null) return; if (pages == null) return;
ListIterator<AbstractToolSettingUI> iter = pages.listIterator(); ListIterator<AbstractToolSettingUI> iter = pages.listIterator();
while (iter.hasNext()) { while (iter.hasNext()) {
AbstractToolSettingUI page = (AbstractToolSettingUI) iter.next(); AbstractToolSettingUI page = iter.next();
if (page == null) continue; if (page == null) continue;
page.setDirty(b); page.setDirty(b);
} }
@ -576,7 +581,7 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
} }
ListIterator<AbstractToolSettingUI> iter = pages.listIterator(); ListIterator<AbstractToolSettingUI> iter = pages.listIterator();
while (iter.hasNext()) { while (iter.hasNext()) {
AbstractToolSettingUI page = (AbstractToolSettingUI) iter.next(); AbstractToolSettingUI page = iter.next();
if (page == null) continue; if (page == null) continue;
if (page.isDirty()) return true; if (page.isDirty()) return true;
} }
@ -595,12 +600,14 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
return (BuildMacroProvider)ManagedBuildManager.getBuildMacroProvider(); return (BuildMacroProvider)ManagedBuildManager.getBuildMacroProvider();
} }
@Override
public void updateData(ICResourceDescription cfgd) { public void updateData(ICResourceDescription cfgd) {
fInfo = getResCfg(cfgd); fInfo = getResCfg(cfgd);
setValues(); setValues();
handleOptionSelection(); handleOptionSelection();
} }
@Override
protected void performApply(ICResourceDescription src, ICResourceDescription dst) { protected void performApply(ICResourceDescription src, ICResourceDescription dst) {
IResourceInfo ri1 = getResCfg(src); IResourceInfo ri1 = getResCfg(src);
IResourceInfo ri2 = getResCfg(dst); IResourceInfo ri2 = getResCfg(dst);
@ -620,10 +627,12 @@ public class ToolSettingsTab extends AbstractCBuildPropertyTab implements IPrefe
} }
// IPreferencePageContainer methods // IPreferencePageContainer methods
@Override
public void updateButtons() {} public void updateButtons() {}
public void updateMessage() {} public void updateMessage() {}
public void updateTitle() {} public void updateTitle() {}
@Override
public boolean canBeVisible() { public boolean canBeVisible() {
IConfiguration cfg = getCfg(); IConfiguration cfg = getCfg();
if (cfg instanceof MultiConfiguration) if (cfg instanceof MultiConfiguration)