[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Implementing binaryParser
|
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.67
diff -u -r1.67 ChangeLog
--- ChangeLog 25 Feb 2003 01:42:26 -0000 1.67
+++ ChangeLog 28 Feb 2003 21:27:36 -0000
@@ -1,3 +1,9 @@
+2003-02-26 Alain Magloire
+
+ * src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java:
+ Adjust to use the new BinaryParser scheme as described
+ in cdt-core-home/docs/binaryParser.html.
+
2003-02-24 Alain Magloire
* src/org/eclipse/cdt/internal/ui/util/SelectionUtil.java:
Index: src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java,v
retrieving revision 1.1
diff -u -r1.1 BinaryParserBlock.java
--- src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java 27 Nov 2002 04:50:32 -0000 1.1
+++ src/org/eclipse/cdt/ui/wizards/BinaryParserBlock.java 28 Feb 2003 21:27:36 -0000
@@ -6,29 +6,31 @@
*/
import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.IBinaryParserConfiguration;
-import org.eclipse.cdt.core.model.CoreModel;
+import org.eclipse.cdt.core.ICDescriptor;
+import org.eclipse.cdt.core.ICExtensionReference;
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
import org.eclipse.cdt.utils.ui.controls.RadioButtonsArea;
import org.eclipse.cdt.utils.ui.swt.IValidation;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
-
public class BinaryParserBlock implements IWizardTab {
- private static final String PREFIX = "BinaryParserBlock"; //$NON-NLS-1$
- private static final String LABEL = PREFIX + ".label"; //$NON-NLS-1$
-
+ //private static final String PREFIX = "BinaryParserBlock"; //$NON-NLS-1$
+ //private static final String LABEL = PREFIX + ".label"; //$NON-NLS-1$
+
private static String[][] radios;
private IProject project;
protected RadioButtonsArea radioButtons;
- private String defaultFormat;
-// protected Button defButton;
+ private String id;
+ // protected Button defButton;
IValidation page;
@@ -39,16 +41,28 @@
public BinaryParserBlock(IValidation valid, IProject p) {
page = valid;
project = p;
- IBinaryParserConfiguration[] configs = CCorePlugin.getDefault().getBinaryParserConfigurations();
- radios = new String[configs.length][2];
- for (int i = 0; i < configs.length; i++) {
- radios[i] = new String[] {configs[i].getName(), configs[i].getFormat()};
+ IExtensionPoint point = CCorePlugin.getDefault().getDescriptor().getExtensionPoint(CCorePlugin.BINARY_PARSER_SIMPLE_ID);
+ if (point != null) {
+ IExtension[] exts = point.getExtensions();
+ radios = new String[exts.length][2];
+ for (int i = 0; i < exts.length; i++) {
+ radios[i] = new String[] { exts[i].getLabel(), exts[i].getUniqueIdentifier()};
+ }
}
- CoreModel model = CCorePlugin.getDefault().getCoreModel();
- if (project == null) {
- defaultFormat = model.getDefaultBinaryParserFormat();
- } else {
- defaultFormat = model.getBinaryParserFormat(project);
+ try {
+ ICDescriptor desc = CCorePlugin.getDefault().getCProjectDescription(p);
+ ICExtensionReference[] ref = desc.get(CCorePlugin.BINARY_PARSER_UNIQ_ID);
+ if (ref.length > 0)
+ id = ref[0].getID();
+
+ } catch (CoreException e) {
+ //e.printStackTrace();
+ }
+ if (id == null) {
+ id = CCorePlugin.getDefault().getPluginPreferences().getDefaultString(CCorePlugin.PREF_BINARY_PARSER);
+ if (id == null || id.length() == 0) {
+ id = CCorePlugin.DEFAULT_BINARY_PARSER_UNIQ_ID;
+ }
}
}
@@ -66,8 +80,8 @@
radioButtons = new RadioButtonsArea(composite, "Parsers", 1, radios);
radioButtons.setEnabled(true);
- if (defaultFormat != null) {
- radioButtons.setSelectValue(defaultFormat);
+ if (id != null) {
+ radioButtons.setSelectValue(id);
}
return composite;
}
@@ -75,7 +89,7 @@
public boolean isValid() {
return true;
}
-
+
public void setVisible(boolean visible) {
}
@@ -84,13 +98,18 @@
monitor = new NullProgressMonitor();
}
monitor.beginTask("Parsers", 1);
- CoreModel model = CCorePlugin.getDefault().getCoreModel();
- String format = radioButtons.getSelectedValue();
- if (format != null) {
- if (defaultFormat == null || !format.equals(defaultFormat)) {
- model.setBinaryParserFormat(project, format, monitor);
- defaultFormat = format;
+ try {
+ ICDescriptor desc = CCorePlugin.getDefault().getCProjectDescription(project);
+ String identity = radioButtons.getSelectedValue();
+ if (identity != null) {
+ if (id == null || !identity.equals(id)) {
+ desc.remove(CCorePlugin.BINARY_PARSER_UNIQ_ID);
+ desc.create(CCorePlugin.BINARY_PARSER_UNIQ_ID, identity);
+ CCorePlugin.getDefault().getCoreModel().resetBinaryParser(project);
+ id = identity;
+ }
}
+ } catch (CoreException e) {
}
}