Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] CDT/UI fix warnings in the wizards.dialogfield package

2003-08-30 Alain Magloire
 
        Deal with the annoying warnings from eclipse about syntetic methods.
        All the fix are in the wizard.dialogfields package. A new addition
        CheckedListDialogField.java
 
        * src/org/eclipse/cdt/internal/ui/wizards/dialogfields/ComboDialogField.java
        * src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java
        * src/org/eclipse/cdt/internal/ui/wizards/dialogfields/ListDialogField.java
        * src/org/eclipse/cdt/internal/ui/wizards/dialogfields/SelectionButtonDialogField.java
        * src/org/eclipse/cdt/internal/ui/wizards/dialogfields/SelectionButtonDialogFieldGroup.java
        * src/org/eclipse/cdt/internal/ui/wizards/dialogfields/StringDialogField.java
        * src/org/eclipse/cdt/internal/ui/wizards/dialogfields/CheckedListDialogField.java
 



Index: CheckedListDialogField.java
===================================================================
RCS file: CheckedListDialogField.java
diff -N CheckedListDialogField.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ CheckedListDialogField.java	30 Aug 2003 21:11:20 -0000
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.internal.ui.wizards.dialogfields;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TableViewer;
+
+/**
+ * A list with checkboxes and a button bar. Typical buttons are 'Check All' and 'Uncheck All'.
+ * List model is independend of widget creation.
+ * DialogFields controls are: Label, List and Composite containing buttons.
+ */
+public class CheckedListDialogField extends ListDialogField {
+	
+	private int fCheckAllButtonIndex;
+	private int fUncheckAllButtonIndex;
+	
+	private List fCheckElements;
+
+	public CheckedListDialogField(IListAdapter adapter, String[] customButtonLabels, ILabelProvider lprovider) {
+		super(adapter, customButtonLabels, lprovider);
+		fCheckElements= new ArrayList();
+		
+		fCheckAllButtonIndex= -1;
+		fUncheckAllButtonIndex= -1;
+	}
+
+	/**
+	 * Sets the index of the 'check' button in the button label array passed in the constructor.
+	 * The behaviour of the button marked as the check button will then be handled internally.
+	 * (enable state, button invocation behaviour)
+	 */	
+	public void setCheckAllButtonIndex(int checkButtonIndex) {
+		Assert.isTrue(checkButtonIndex < fButtonLabels.length);
+		fCheckAllButtonIndex= checkButtonIndex;
+	}
+
+	/**
+	 * Sets the index of the 'uncheck' button in the button label array passed in the constructor.
+	 * The behaviour of the button marked as the uncheck button will then be handled internally.
+	 * (enable state, button invocation behaviour)
+	 */	
+	public void setUncheckAllButtonIndex(int uncheckButtonIndex) {
+		Assert.isTrue(uncheckButtonIndex < fButtonLabels.length);
+		fUncheckAllButtonIndex= uncheckButtonIndex;
+	}
+	
+
+	/*
+	 * @see ListDialogField#createTableViewer
+	 */
+	protected TableViewer createTableViewer(Composite parent) {
+		Table table= new Table(parent, SWT.CHECK + getListStyle());
+		CheckboxTableViewer tableViewer= new CheckboxTableViewer(table);
+		tableViewer.addCheckStateListener(new ICheckStateListener() {
+			public void checkStateChanged(CheckStateChangedEvent e) {
+				doCheckStateChanged(e);
+			}
+		});
+		return tableViewer;
+	}		
+	
+	
+	/*
+	 * @see ListDialogField#getListControl
+	 */
+	public Control getListControl(Composite parent) {
+		Control control= super.getListControl(parent);
+		if (parent != null) {
+			((CheckboxTableViewer)fTable).setCheckedElements(fCheckElements.toArray());
+		}
+		return control;
+	}	
+	
+	/*
+	 * @see DialogField#dialogFieldChanged
+	 * Hooks in to get element changes to update check model.
+	 */
+	public void dialogFieldChanged() {
+		for (int i= fCheckElements.size() -1; i >= 0; i--) {
+			if (!fElements.contains(fCheckElements.get(i))) {
+				fCheckElements.remove(i);
+			}
+		}
+		super.dialogFieldChanged();
+	}	
+	
+	private void checkStateChanged() {
+		//call super and do not update check model
+		super.dialogFieldChanged();
+	}		
+
+	/**
+	 * Gets the checked elements.
+	 */
+	public List getCheckedElements() {
+		return new ArrayList(fCheckElements);
+	}
+	
+	/**
+	 * Returns true if the element is checked.
+	 */
+	public boolean isChecked(Object obj) {
+		return fCheckElements.contains(obj);
+	}	
+	
+	/**
+	 * Sets the checked elements.
+	 */	
+	public void setCheckedElements(List list) {
+		fCheckElements= new ArrayList(list);
+		if (fTable != null) {
+			((CheckboxTableViewer)fTable).setCheckedElements(list.toArray());
+		}
+		checkStateChanged();
+	}
+
+	/**
+	 * Sets the checked state of an element.
+	 */		
+	public void setChecked(Object object, boolean state) {
+		setCheckedWithoutUpdate(object, state);
+		checkStateChanged();
+	}
+	
+	/**
+	 * Sets the checked state of an element. No dialog changed listener is informed.
+	 */		
+	public void setCheckedWithoutUpdate(Object object, boolean state) {
+		if (!fCheckElements.contains(object)) {
+			fCheckElements.add(object);
+		}
+		if (fTable != null) {
+			((CheckboxTableViewer)fTable).setChecked(object, state);
+		}
+	}
+
+	/**
+	 * Sets the check state of all elements
+	 */	
+	public void checkAll(boolean state) {
+		if (state) {
+			fCheckElements= getElements();
+		} else {
+			fCheckElements.clear();
+		}
+		if (fTable != null) {
+			((CheckboxTableViewer)fTable).setAllChecked(state);
+		}
+		checkStateChanged();
+	}
+	
+			
+	protected void doCheckStateChanged(CheckStateChangedEvent e) {
+		if (e.getChecked()) {
+			fCheckElements.add(e.getElement());
+		} else {
+			fCheckElements.remove(e.getElement());
+		}		
+		checkStateChanged();
+	}
+	
+	// ------ enable / disable management
+	
+	/*
+	 * @see ListDialogField#getManagedButtonState
+	 */
+	protected boolean getManagedButtonState(ISelection sel, int index) {
+		if (index == fCheckAllButtonIndex) {
+			return !fElements.isEmpty();
+		} else if (index == fUncheckAllButtonIndex) {
+			return !fElements.isEmpty();
+		}
+		return super.getManagedButtonState(sel, index);
+	}	
+
+	/*
+	 * @see ListDialogField#extraButtonPressed
+	 */	
+	protected boolean managedButtonPressed(int index) {
+		if (index == fCheckAllButtonIndex) {
+			checkAll(true);
+		} else if (index == fUncheckAllButtonIndex) {
+			checkAll(false);
+		} else {
+			return super.managedButtonPressed(index);
+		}
+		return true;
+	}
+	
+				
+	
+	
+
+}
Index: ComboDialogField.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/ComboDialogField.java,v
retrieving revision 1.1
diff -u -r1.1 ComboDialogField.java
--- ComboDialogField.java	28 Jun 2003 19:48:07 -0000	1.1
+++ ComboDialogField.java	30 Aug 2003 21:11:21 -0000
@@ -122,7 +122,7 @@
 		return fComboControl;
 	}	
 	
-	private void doModifyText(ModifyEvent e) {
+	protected void doModifyText(ModifyEvent e) {
 		if (isOkToUse(fComboControl)) {
 			fText= fComboControl.getText();
 			fSelectionIndex= fComboControl.getSelectionIndex();
@@ -130,7 +130,7 @@
 		dialogFieldChanged();
 	}
 	
-	private void doSelectionChanged(SelectionEvent e) {
+	protected void doSelectionChanged(SelectionEvent e) {
 		if (isOkToUse(fComboControl)) {
 			fItems= fComboControl.getItems();
 			fText= fComboControl.getText();
Index: LinkToFileGroup.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/LinkToFileGroup.java,v
retrieving revision 1.1
diff -u -r1.1 LinkToFileGroup.java
--- LinkToFileGroup.java	27 May 2003 21:33:02 -0000	1.1
+++ LinkToFileGroup.java	30 Aug 2003 21:11:21 -0000
@@ -46,20 +46,20 @@
  */
 public class LinkToFileGroup extends StringButtonDialogField {
 	private String fText;
-	private Listener listener;
+	protected Listener listener;
 	private String initialLinkTarget;
 	private int type;
-	private boolean createLink = false;
+	protected boolean createLink = false;
 
 	// used to compute layout sizes
 	//private FontMetrics fontMetrics;
 
 	// widgets
 	//private Composite groupComposite;
-	private Text linkTargetField;
-	private Button linkButton;
-	private Button browseButton;
-	private Button variablesButton;
+	protected Text linkTargetField;
+	protected Button linkButton;
+	protected Button browseButton;
+	protected Button variablesButton;
 	private Label resolvedPathLabelText;
 	private Label resolvedPathLabelData;
 	
@@ -76,7 +76,7 @@
 		Label label= getLabelControl(parent);
 		label.setLayoutData(gridDataForLabel(1));
 			
-		Button checkButton = getLinkCheckButtonControl(parent);		
+		//Button checkButton = getLinkCheckButtonControl(parent);		
 
 		Text text= getTextControl(parent);
 		text.setLayoutData(gridDataForText(1));
@@ -242,7 +242,7 @@
 	/**
 	 * Opens a file or directory browser depending on the link type.
 	 */
-	private void handleLinkTargetBrowseButtonPressed() {
+	protected void handleLinkTargetBrowseButtonPressed() {
 		String linkTargetName = linkTargetField.getText();
 		File file = null;
 		String selection = null;
@@ -279,7 +279,7 @@
 	/**
 	 * Opens a path variable selection dialog
 	 */
-	private void handleVariablesButtonPressed() {
+	protected void handleVariablesButtonPressed() {
 		int variableTypes = IResource.FOLDER;
 	
 		// allow selecting file and folder variables when creating a 
@@ -300,7 +300,7 @@
 	 * a variable, if the value is a relative path.
 	 * Displays the resolved value if the entered value is a variable.
 	 */
-	private void resolveVariable() {
+	protected void resolveVariable() {
 		if(!linkTargetField.isEnabled())
 			return;
 			
Index: ListDialogField.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/ListDialogField.java,v
retrieving revision 1.1
diff -u -r1.1 ListDialogField.java
--- ListDialogField.java	27 May 2003 21:33:02 -0000	1.1
+++ ListDialogField.java	30 Aug 2003 21:11:21 -0000
@@ -59,9 +59,9 @@
 public class ListDialogField extends DialogField {
 	
 	public static class ColumnsDescription {
-		private ColumnLayoutData[] columns;
-		private String[] headers;
-		private boolean drawLines;
+		protected ColumnLayoutData[] columns;
+		protected String[] headers;
+		protected boolean drawLines;
 		
 		public ColumnsDescription(ColumnLayoutData[] columns, String[] headers, boolean drawLines) {
 			this.columns= columns;
@@ -103,7 +103,7 @@
 	
 	private Label fLastSeparator;
 	
-	private Control fTableControl;
+	protected Control fTableControl;
 	private Composite fButtonsControl;
 	private ISelection fSelectionWhenEnabled;
 	
@@ -111,7 +111,7 @@
 	
 	private Object fParentElement;
 	
-	private ColumnsDescription fTableColumns;
+	protected ColumnsDescription fTableColumns;
 	
 
 	/**
@@ -438,7 +438,7 @@
 		return fButtonsControl;
 	}
 	
-	private void doButtonSelected(SelectionEvent e) {
+	protected void doButtonSelected(SelectionEvent e) {
 		if (fButtonControls != null) {
 			for (int i= 0; i < fButtonControls.length; i++) {
 				if (e.widget == fButtonControls[i]) {
Index: SelectionButtonDialogField.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/SelectionButtonDialogField.java,v
retrieving revision 1.1
diff -u -r1.1 SelectionButtonDialogField.java
--- SelectionButtonDialogField.java	28 Jun 2003 19:48:07 -0000	1.1
+++ SelectionButtonDialogField.java	30 Aug 2003 21:11:21 -0000
@@ -131,7 +131,7 @@
 		return fButton;
 	}
 	
-	private void doWidgetSelected(SelectionEvent e) {
+	protected void doWidgetSelected(SelectionEvent e) {
 		if (isOkToUse(fButton)) {
 			changeValue(fButton.getSelection());
 		}
Index: SelectionButtonDialogFieldGroup.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/SelectionButtonDialogFieldGroup.java,v
retrieving revision 1.1
diff -u -r1.1 SelectionButtonDialogFieldGroup.java
--- SelectionButtonDialogFieldGroup.java	27 May 2003 21:33:02 -0000	1.1
+++ SelectionButtonDialogFieldGroup.java	30 Aug 2003 21:11:21 -0000
@@ -183,7 +183,7 @@
 		return null;
 	}
 	
-	private void doWidgetSelected(SelectionEvent e) {
+	protected void doWidgetSelected(SelectionEvent e) {
 		Button button= (Button)e.widget;
 		for (int i= 0; i < fButtons.length; i++) {
 			if (fButtons[i] == button) {
Index: StringDialogField.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/dialogfields/StringDialogField.java,v
retrieving revision 1.4
diff -u -r1.4 StringDialogField.java
--- StringDialogField.java	27 May 2003 21:33:02 -0000	1.4
+++ StringDialogField.java	30 Aug 2003 21:11:21 -0000
@@ -98,7 +98,7 @@
 		return fTextControl;
 	}
 	
-	private void doModifyText(ModifyEvent e) {
+	protected void doModifyText(ModifyEvent e) {
 		if (isOkToUse(fTextControl)) {
 			fText= fTextControl.getText();
 		}



Back to the top