Author: DartPeng
Date: 2009-05-07 09:38:44 -0400 (Thu, 07 May 2009)
New Revision: 15108
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/ovr16/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/ovr16/error_co.gif
trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/ovr16/warning_co.gif
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/validate/ValidateResultLabelDecorator.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/validate/SmooksModelValidator.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/SmooksConfigurationActivator.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/Codegenerator.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/FieldMarkerComposite.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/GraphicsConstants.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/IFieldMarker.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksStuffPropertyDetailPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
Log:
JBIDE-4232
Validate smooks file, if found any errors or warnings , draw the images on
"FieldMarker" canvas.
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/validate/SmooksModelValidator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/validate/SmooksModelValidator.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/validate/SmooksModelValidator.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -124,7 +124,7 @@
while (waiting) {
try {
waiting = false;
- Thread.sleep(1000);
+ Thread.sleep(700);
Thread.yield();
} catch (InterruptedException e) {
e.printStackTrace();
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/ovr16/error_co.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/ovr16/error_co.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/ovr16/warning_co.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/icons/full/ovr16/warning_co.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml 2009-05-07 13:37:00 UTC (rev
15107)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/plugin.xml 2009-05-07 13:38:44 UTC (rev
15108)
@@ -47,5 +47,24 @@
class="org.jboss.tools.smooks.configuration.editors.SmooksToolsStartup">
</startup>
</extension>
+ <extension
+ point="org.eclipse.ui.decorators">
+ <decorator
+ adaptable="false"
+
class="org.jboss.tools.smooks.configuration.validate.ValidateResultLabelDecorator"
+ id="org.jboss.tools.smooks.ui.configurationPage.decorator"
+ label="Smooks Configuration Page Viewer Decorator"
+ lightweight="true"
+ state="false">
+ <description>
+ Decorate smooks configuration page viewer
+ </description>
+ <enablement>
+ <objectClass
+
name="org.jboss.tools.smooks.model.common.AbstractAnyType">
+ </objectClass>
+ </enablement>
+ </decorator>
+ </extension>
</plugin>
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/SmooksConfigurationActivator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/SmooksConfigurationActivator.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/SmooksConfigurationActivator.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -66,7 +66,12 @@
super.initializeImageRegistry(reg);
reg.put(GraphicsConstants.JAVA_PROPERTY_ICON,
getImageDescriptor(GraphicsConstants.JAVA_PROPERTY_ICON_PATH));
+
+ // regist ovr images
+ reg.put(GraphicsConstants.IMAGE_OVR_ERROR,
getImageDescriptor(GraphicsConstants.IMAGE_OVR_ERROR));
+ reg.put(GraphicsConstants.IMAGE_OVR_WARING,
getImageDescriptor(GraphicsConstants.IMAGE_OVR_WARING));
+ // regist
reg.put(GraphicsConstants.IMAGE_EMPTY,
getImageDescriptor(GraphicsConstants.IMAGE_PATH_BLANK));
reg.put(GraphicsConstants.IMAGE_ERROR,
getImageDescriptor(GraphicsConstants.IMAGE_PATH_ERROR));
reg.put(GraphicsConstants.IMAGE_WARNING,
getImageDescriptor(GraphicsConstants.IMAGE_PATH_WARNING));
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/Codegenerator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/Codegenerator.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/Codegenerator.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -13,7 +13,6 @@
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
-import org.jboss.tools.smooks.model.calc.CalcPackage;
import org.jboss.tools.smooks.model.datasource.DatasourcePackage;
public class Codegenerator {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/FieldMarkerComposite.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/FieldMarkerComposite.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/FieldMarkerComposite.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -30,12 +30,12 @@
// private Image informationImage = null;
- private int type = -1;
+ private int type = TYPE_NONE;
public FieldMarkerComposite(Composite parent, int style) {
super(parent, style);
- errorImage =
SmooksConfigurationActivator.getDefault().getImageRegistry().get(GraphicsConstants.IMAGE_ERROR);
- waringImage =
SmooksConfigurationActivator.getDefault().getImageRegistry().get(GraphicsConstants.IMAGE_WARNING);
+ errorImage =
SmooksConfigurationActivator.getDefault().getImageRegistry().get(GraphicsConstants.IMAGE_OVR_ERROR);
+ waringImage =
SmooksConfigurationActivator.getDefault().getImageRegistry().get(GraphicsConstants.IMAGE_OVR_WARING);
this.addPaintListener(this);
}
@@ -49,6 +49,10 @@
this.type = type;
this.redraw();
}
+
+ public int getMarkerType(){
+ return type;
+ }
/*
* (non-Javadoc)
@@ -59,9 +63,15 @@
public void setMessage(String message) {
this.setToolTipText(message);
}
+
+ public String getMessage(){
+ return getToolTipText();
+ }
public void clean() {
+ setMarkerType(TYPE_NONE);
this.setToolTipText(null);
+ this.redraw();
}
public void paintControl(PaintEvent e) {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/GraphicsConstants.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/GraphicsConstants.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/GraphicsConstants.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -10,6 +10,10 @@
public static final String IMAGE_JAVA_OBJECT = "java_object";
+ public static final String IMAGE_OVR_ERROR = "icons/full/ovr16/error_co.gif";
+
+ public static final String IMAGE_OVR_WARING =
"icons/full/ovr16/warning_co.gif";
+
public static final String IMAGE_JAVA_INTERFACE =
"icons/full/obj16/int_obj.gif";
public static final String IMAGE_JAVA_COLLECTION =
"icons/full/obj16/javalistmodel.gif";
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/IFieldMarker.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/IFieldMarker.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/IFieldMarker.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -20,9 +20,15 @@
int TYPE_WARINING = 2;
+ int TYPE_NONE = 0;
+
void setMessage(String message);
void setMarkerType(int type);
+ int getMarkerType();
+
+ String getMessage();
+
void clean();
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -287,7 +287,6 @@
}
public void validateEnd(Diagnostic diagnosticResult) {
- System.out.println(diagnosticResult);
}
public void validateStart() {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -28,6 +28,7 @@
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.DecoratingLabelProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -52,6 +53,7 @@
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
+import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator;
import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
/**
@@ -156,10 +158,14 @@
tableComposite.setLayout(fillLayout);
smooksTreeViewer = new TreeViewer(tableComposite, SWT.NONE);
smooksTreeViewer.addSelectionChangedListener(this);
+
smooksTreeViewer.setContentProvider(new AdapterFactoryContentProvider(editingDomain
.getAdapterFactory()));
- smooksTreeViewer.setLabelProvider(new AdapterFactoryLabelProvider(editingDomain
- .getAdapterFactory()));
+
+ smooksTreeViewer.setLabelProvider(new DecoratingLabelProvider(new
AdapterFactoryLabelProvider(editingDomain
+ .getAdapterFactory()),
+ SmooksConfigurationActivator.getDefault().getWorkbench()
+ .getDecoratorManager().getLabelDecorator()));
smooksTreeViewer.setFilters(new ViewerFilter[] { new TextEObjectModelFilter() });
Object smooksModel = ((SmooksMultiFormEditor) this.formEditor).getSmooksModel();
if (smooksModel != null) {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -33,6 +33,7 @@
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.command.CommandStack;
import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
@@ -77,6 +78,7 @@
import org.jboss.tools.smooks.model.json.provider.JsonItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.medi.provider.MEdiItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.smooks.provider.SmooksItemProviderAdapterFactory;
+import org.jboss.tools.smooks.model.validate.ISmooksModelValidateListener;
import org.jboss.tools.smooks.model.validate.SmooksModelValidator;
import org.jboss.tools.smooks.model.xsl.provider.XslItemProviderAdapterFactory;
import org.jboss.tools.smooks10.model.smooks.util.SmooksResourceFactoryImpl;
@@ -85,7 +87,7 @@
*
* @author Dart Peng (dpeng(a)redhat.com) Date Apr 1, 2009
*/
-public class SmooksMultiFormEditor extends FormEditor implements IEditingDomainProvider
{
+public class SmooksMultiFormEditor extends FormEditor implements IEditingDomainProvider ,
ISmooksModelValidateListener{
public static final String EDITOR_ID =
"org.jboss.tools.smooks.configuration.editors.MultiPageEditor";
@@ -106,6 +108,8 @@
private EObject smooksModel;
private boolean handleEMFModelChange;
+
+ private Diagnostic diagnostic;
public SmooksMultiFormEditor() {
super();
@@ -221,6 +225,14 @@
configurationPage.setSelectionToViewer(newList);
}
}
+
+ public void addValidateListener(ISmooksModelValidateListener listener){
+ validator.addValidateListener(listener);
+ }
+
+ public void removeValidateListener(ISmooksModelValidateListener listener){
+ validator.removeValidateListener(listener);
+ }
/*
* (non-Javadoc)
@@ -230,7 +242,7 @@
@Override
protected void addPages() {
configurationPage = createSmooksConfigurationFormPage();
- validator.addValidateListener(configurationPage);
+ addValidateListener(configurationPage);
try {
int index = this.addPage(configurationPage);
setPageText(index, "Design");
@@ -364,10 +376,7 @@
}
}
if (this.smooksModel != null) {
- List<Object> lists = new ArrayList<Object>();
- lists.add(smooksModel);
-// SmooksModelValidator validator = new SmooksModelValidator(lists,
getEditingDomain());
-// validator.startValidate(smooksModel.eResource().getContents(), editingDomain);
+ validator.startValidate(smooksModel.eResource().getContents(), editingDomain);
}
} catch (IOException e) {
SmooksConfigurationActivator.getDefault().log(e);
@@ -391,6 +400,9 @@
super.init(site, input);
validator = new SmooksModelValidator();
+ addValidateListener(this);
+ setDiagnostic(validator.validate(smooksModel.eResource().getContents(),
editingDomain));
+
// if success to open editor , check if there isn't ext file and create
// a new one
String extFileName = file.getName() +
SmooksConstants.SMOOKS_GRAPHICSEXT_EXTENTION_NAME_WITHDOT;
@@ -447,6 +459,20 @@
this.editingDomain = editingDomain;
}
+ /**
+ * @return the diagnostic
+ */
+ public Diagnostic getDiagnostic() {
+ return diagnostic;
+ }
+
+ /**
+ * @param diagnostic the diagnostic to set
+ */
+ public void setDiagnostic(Diagnostic diagnostic) {
+ this.diagnostic = diagnostic;
+ }
+
/*
* (non-Javadoc)
*
@@ -456,4 +482,12 @@
return false;
}
+ public void validateEnd(Diagnostic diagnosticResult) {
+ setDiagnostic(diagnosticResult);
+ }
+
+ public void validateStart() {
+
+ }
+
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksStuffPropertyDetailPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksStuffPropertyDetailPage.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksStuffPropertyDetailPage.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -11,8 +11,12 @@
package org.jboss.tools.smooks.configuration.editors;
import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClassifier;
@@ -40,6 +44,8 @@
import org.eclipse.ui.forms.widgets.Section;
import org.jboss.tools.smooks.configuration.editors.uitls.IModelProcsser;
import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.model.common.AbstractAnyType;
+import org.jboss.tools.smooks.model.validate.ISmooksModelValidateListener;
/**
*
@@ -47,25 +53,38 @@
* <p>
* Apr 7, 2009
*/
-public class SmooksStuffPropertyDetailPage implements IDetailsPage {
- FormToolkit formToolkit = null;
+public class SmooksStuffPropertyDetailPage implements IDetailsPage,
ISmooksModelValidateListener {
+
+ private FormToolkit formToolkit = null;
+
private IManagedForm managedForm;
+
private ISelection selection;
+
private IFormPart formPart;
+
private Section section;
+
private SmooksMultiFormEditor formEditor;
+
private AdapterFactoryEditingDomain editingDomain = null;
+
private IItemPropertySource itemPropertySource = null;
+ private Map<Object, Object> currentPropertyUIMap = new HashMap<Object,
Object>();
+
private Object oldModel = null;
private boolean isStale = false;
+
private Composite propertyMainComposite;
+
private Composite propertyComposite;
public SmooksStuffPropertyDetailPage(SmooksMultiFormEditor formEditor) {
super();
this.formEditor = formEditor;
+ this.formEditor.addValidateListener(this);
editingDomain = (AdapterFactoryEditingDomain) formEditor.getEditingDomain();
}
@@ -92,6 +111,7 @@
*/
protected void createStuffDetailsComposite(Composite detailsComposite) {
try {
+ cleanCurrentPropertyUIMap();
GridLayout layout = new GridLayout();
layout.numColumns = 2;
detailsComposite.setLayout(layout);
@@ -101,29 +121,91 @@
IItemPropertyDescriptor pd = propertyDes.get(i);
EAttribute attribute = (EAttribute) pd.getFeature(getModel());
if (attribute.isRequired()) {
- createAttributeUI(detailsComposite, pd, creator);
+ AttributeFieldEditPart editPart = createAttributeUI(detailsComposite, pd, creator);
+ if (editPart != null) {
+ currentPropertyUIMap.put(attribute, editPart);
+ }
}
}
for (int i = 0; i < propertyDes.size(); i++) {
IItemPropertyDescriptor pd = propertyDes.get(i);
EAttribute attribute = (EAttribute) pd.getFeature(getModel());
if (!attribute.isRequired()) {
- createAttributeUI(detailsComposite, pd, creator);
+ AttributeFieldEditPart editPart = createAttributeUI(detailsComposite, pd, creator);
+ if (editPart != null) {
+ currentPropertyUIMap.put(attribute, editPart);
+ }
}
}
if (creator != null) {
- creator.createExtendUI((AdapterFactoryEditingDomain) formEditor.getEditingDomain(),
formToolkit, detailsComposite, getModel(),
- getFormEditor());
+ creator.createExtendUI((AdapterFactoryEditingDomain) formEditor.getEditingDomain(),
formToolkit,
+ detailsComposite, getModel(), getFormEditor());
}
formToolkit.paintBordersFor(detailsComposite);
detailsComposite.pack();
propertyMainComposite.layout();
+
+ markPropertyUI(formEditor.getDiagnostic());
} catch (Exception e) {
e.printStackTrace();
}
}
- protected AttributeFieldEditPart createAttributeUI(Composite detailsComposite,
IItemPropertyDescriptor propertyDescriptor, IPropertyUICreator creator) {
+ protected void markPropertyUI(Diagnostic diagnostic) {
+ for (Iterator<?> iterator = currentPropertyUIMap.values().iterator();
iterator.hasNext();) {
+ AttributeFieldEditPart editPart = (AttributeFieldEditPart) iterator.next();
+ if (editPart.getFieldMarker() != null) {
+ editPart.getFieldMarker().clean();
+ }
+ }
+ markErrorWarningPropertyUI(diagnostic);
+ }
+
+ protected void markErrorWarningPropertyUI(Diagnostic diagnostic) {
+ if (diagnostic == null || diagnostic.getSeverity() == Diagnostic.OK) {
+ return;
+ }
+ List<?> data = diagnostic.getData();
+ for (Object object : data) {
+ if (object instanceof EObject) {
+ EObject eObject = (EObject) object;
+ if (eObject instanceof AbstractAnyType) {
+ if (eObject != getModel()) {
+ return;
+ }
+ }
+ if (eObject instanceof EAttribute) {
+ AttributeFieldEditPart editPart = (AttributeFieldEditPart)
currentPropertyUIMap.get(eObject);
+ if (editPart == null) {
+ return;
+ }
+ IFieldMarker marker = editPart.getFieldMarker();
+ if (marker == null)
+ return;
+ marker.setMessage(diagnostic.getMessage());
+ if (diagnostic.getSeverity() == Diagnostic.ERROR) {
+ if (marker.getMarkerType() != IFieldMarker.TYPE_ERROR)
+ marker.setMarkerType(IFieldMarker.TYPE_ERROR);
+ }
+
+ if (diagnostic.getSeverity() == Diagnostic.WARNING) {
+ if (marker.getMarkerType() != IFieldMarker.TYPE_WARINING)
+ marker.setMarkerType(IFieldMarker.TYPE_WARINING);
+ }
+ }
+ }
+ }
+
+ List<Diagnostic> children = diagnostic.getChildren();
+ for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
+ Diagnostic diagnostic2 = (Diagnostic) iterator.next();
+ markErrorWarningPropertyUI(diagnostic2);
+ }
+
+ }
+
+ protected AttributeFieldEditPart createAttributeUI(Composite detailsComposite,
+ IItemPropertyDescriptor propertyDescriptor, IPropertyUICreator creator) {
final IItemPropertyDescriptor itemPropertyDescriptor = propertyDescriptor;
EAttribute feature = (EAttribute) itemPropertyDescriptor.getFeature(getModel());
AttributeFieldEditPart editPart = null;
@@ -132,8 +214,8 @@
if (creator.ignoreProperty(feature)) {
return null;
}
- editPart = creator.createPropertyUI(formToolkit, detailsComposite,
itemPropertyDescriptor, getModel(), feature,
- getFormEditor());
+ editPart = creator.createPropertyUI(formToolkit, detailsComposite,
itemPropertyDescriptor, getModel(),
+ feature, getFormEditor());
if (editPart != null) {
createDefault = false;
}
@@ -142,7 +224,8 @@
EClassifier typeClazz = feature.getEType();
boolean hasCreated = false;
if (typeClazz instanceof EEnum) {
- editPart = createEnumFieldEditor(detailsComposite, feature, (EEnum) typeClazz,
formToolkit, itemPropertyDescriptor);
+ editPart = createEnumFieldEditor(detailsComposite, feature, (EEnum) typeClazz,
formToolkit,
+ itemPropertyDescriptor);
hasCreated = true;
}
if (typeClazz.getInstanceClass() == String.class) {
@@ -163,12 +246,12 @@
// itemPropertyDescriptor);
}
}
-
+
return editPart;
}
- protected AttributeFieldEditPart createEnumFieldEditor(Composite propertyComposite,
EAttribute feature, final EEnum typeClass, FormToolkit formToolKit,
- final IItemPropertyDescriptor itemPropertyDescriptor) {
+ protected AttributeFieldEditPart createEnumFieldEditor(Composite propertyComposite,
EAttribute feature,
+ final EEnum typeClass, FormToolkit formToolKit, final IItemPropertyDescriptor
itemPropertyDescriptor) {
List<EEnumLiteral> literalList = typeClass.getELiterals();
String[] items = new String[literalList.size()];
for (int i = 0; i < literalList.size(); i++) {
@@ -201,11 +284,12 @@
}
};
- return SmooksUIUtils.createChoiceFieldEditor(propertyComposite, formToolkit,
itemPropertyDescriptor, getModel(), items, processer, true);
+ return SmooksUIUtils.createChoiceFieldEditor(propertyComposite, formToolkit,
itemPropertyDescriptor,
+ getModel(), items, processer, true);
}
- protected AttributeFieldEditPart createBooleanFieldEditor(final Composite
propertyComposite, EAttribute feature, FormToolkit formToolkit,
- final IItemPropertyDescriptor itemPropertyDescriptor) {
+ protected AttributeFieldEditPart createBooleanFieldEditor(final Composite
propertyComposite, EAttribute feature,
+ FormToolkit formToolkit, final IItemPropertyDescriptor itemPropertyDescriptor) {
IModelProcsser processer = new IModelProcsser() {
public Object unwrapValue(Object model) {
@@ -228,18 +312,20 @@
}
};
- return SmooksUIUtils.createChoiceFieldEditor(propertyComposite, formToolkit,
itemPropertyDescriptor, getModel(), new String[] { "TRUE", "FALSE" },
- processer, true);
+ return SmooksUIUtils.createChoiceFieldEditor(propertyComposite, formToolkit,
itemPropertyDescriptor,
+ getModel(), new String[] { "TRUE", "FALSE" }, processer, true);
}
- protected AttributeFieldEditPart createStringFieldEditor(final Composite
propertyComposite, EAttribute feature, FormToolkit formToolKit,
- final IItemPropertyDescriptor itemPropertyDescriptor) {
- return SmooksUIUtils.createStringFieldEditor(propertyComposite, formToolKit,
itemPropertyDescriptor, getModel(), false, false, null);
+ protected AttributeFieldEditPart createStringFieldEditor(final Composite
propertyComposite, EAttribute feature,
+ FormToolkit formToolKit, final IItemPropertyDescriptor itemPropertyDescriptor) {
+ return SmooksUIUtils.createStringFieldEditor(propertyComposite, formToolKit,
itemPropertyDescriptor,
+ getModel(), false, false, null);
}
- protected void createIntegerFieldEditor(final Composite propertyComposite, EAttribute
feature, FormToolkit formToolKit,
- final IItemPropertyDescriptor itemPropertyDescriptor) {
- SmooksUIUtils.createFieldEditorLabel(null,propertyComposite, formToolKit,
itemPropertyDescriptor, getModel(), false);
+ protected void createIntegerFieldEditor(final Composite propertyComposite, EAttribute
feature,
+ FormToolkit formToolKit, final IItemPropertyDescriptor itemPropertyDescriptor) {
+ SmooksUIUtils.createFieldEditorLabel(null, propertyComposite, formToolKit,
itemPropertyDescriptor, getModel(),
+ false);
final Spinner spinner = new Spinner(propertyComposite, SWT.BORDER);
Object value = itemPropertyDescriptor.getPropertyValue(getModel());
if (value != null && value instanceof PropertyValueWrapper) {
@@ -280,7 +366,8 @@
setOldModel(oldModel);
this.selection = selection;
this.formPart = part;
- this.itemPropertySource = (IItemPropertySource)
editingDomain.getAdapterFactory().adapt(getModel(), IItemPropertySource.class);
+ this.itemPropertySource = (IItemPropertySource)
editingDomain.getAdapterFactory().adapt(getModel(),
+ IItemPropertySource.class);
if (getOldModel() == getModel())
return;
if (getOldModel() != getModel()) {
@@ -356,6 +443,10 @@
}
}
+ protected void cleanCurrentPropertyUIMap() {
+ currentPropertyUIMap.clear();
+ }
+
public SmooksMultiFormEditor getFormEditor() {
return formEditor;
}
@@ -371,4 +462,12 @@
public void setStale(boolean isStale) {
this.isStale = isStale;
}
+
+ public void validateEnd(Diagnostic diagnosticResult) {
+ markPropertyUI(diagnosticResult);
+ }
+
+ public void validateStart() {
+
+ }
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-05-07
13:37:00 UTC (rev 15107)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -53,7 +53,6 @@
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
@@ -157,7 +156,6 @@
}
}
Composite labelComposite = formToolKit.createComposite(parent);
- labelComposite.setBackground(new Color(null, 128, 132, 132));
GridLayout layout = new GridLayout();
layout.numColumns = 2;
layout.marginLeft = 0;
@@ -166,6 +164,7 @@
labelComposite.setLayout(layout);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
Control labelControl = null;
+
if (!isLink) {
Label label = formToolKit.createLabel(labelComposite, displayName + " :");
label.setForeground(formToolKit.getColors().getColor(IFormColors.TITLE));
@@ -174,6 +173,7 @@
Hyperlink link = formToolKit.createHyperlink(labelComposite, displayName + "
:", SWT.NONE);
labelControl = link;
}
+ gd = new GridData();
labelControl.setLayoutData(gd);
FieldMarkerComposite notificationComposite = new FieldMarkerComposite(labelComposite,
SWT.NONE);
@@ -183,6 +183,7 @@
gd.horizontalAlignment = GridData.BEGINNING;
gd.verticalAlignment = GridData.BEGINNING;
notificationComposite.setLayoutData(gd);
+
wrapper.setLabelControl(labelControl);
wrapper.setMarker(notificationComposite);
return wrapper;
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/validate/ValidateResultLabelDecorator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/validate/ValidateResultLabelDecorator.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/validate/ValidateResultLabelDecorator.java 2009-05-07
13:38:44 UTC (rev 15108)
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.smooks.configuration.validate;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.jface.viewers.IDecoration;
+import org.eclipse.jface.viewers.IDecorationContext;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ILightweightLabelDecorator;
+import org.eclipse.jface.viewers.LabelDecorator;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.part.FileEditorInput;
+import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator;
+import org.jboss.tools.smooks.configuration.editors.GraphicsConstants;
+import org.jboss.tools.smooks.configuration.editors.SmooksMultiFormEditor;
+import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.model.common.AbstractAnyType;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class ValidateResultLabelDecorator extends LabelDecorator implements
ILabelDecorator, ILightweightLabelDecorator {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.viewers.ILabelDecorator#decorateImage(org.eclipse.swt
+ * .graphics.Image, java.lang.Object)
+ */
+ public Image decorateImage(Image image, Object element) {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.viewers.ILabelDecorator#decorateText(java.lang.String,
+ * java.lang.Object)
+ */
+ public String decorateText(String text, Object element) {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.
+ * jface.viewers.ILabelProviderListener)
+ */
+ public void addListener(ILabelProviderListener listener) {
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+ */
+ public void dispose() {
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang
+ * .Object, java.lang.String)
+ */
+ public boolean isLabelProperty(Object element, String property) {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse
+ * .jface.viewers.ILabelProviderListener)
+ */
+ public void removeListener(ILabelProviderListener listener) {
+
+ }
+
+ protected int markErrorWarningPropertyUI(Diagnostic diagnostic, Object model) {
+ if (diagnostic == null || diagnostic.getSeverity() == Diagnostic.OK) {
+ return Diagnostic.OK;
+ }
+ List<?> data = diagnostic.getData();
+ for (Object object : data) {
+ if (object instanceof EObject) {
+ EObject eObject = (EObject) object;
+ if (eObject instanceof AbstractAnyType) {
+ if (eObject == model) {
+ return diagnostic.getSeverity();
+ }
+ }
+ }
+ }
+
+ List<Diagnostic> children = diagnostic.getChildren();
+ for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
+ Diagnostic diagnostic2 = (Diagnostic) iterator.next();
+ int i = markErrorWarningPropertyUI(diagnostic2, model);
+ if (i != -1) {
+ return i;
+ }
+ }
+
+ return -1;
+
+ }
+
+ public void decorate(Object element, IDecoration decoration) {
+ try {
+ element = AdapterFactoryEditingDomain.unwrap(element);
+ if (element instanceof AbstractAnyType) {
+ IResource resource = SmooksUIUtils.getResource((EObject) element);
+ IWorkbenchWindow window =
SmooksConfigurationActivator.getDefault().getWorkbench().getActiveWorkbenchWindow();
+ if (window == null) {
+ return;
+ }
+ SmooksMultiFormEditor editor = (SmooksMultiFormEditor)
window.getActivePage().findEditor(
+ new FileEditorInput((IFile) resource));
+ int type = markErrorWarningPropertyUI(editor.getDiagnostic(), element);
+ decoration.addOverlay(null, IDecoration.BOTTOM_RIGHT);
+ if (type == Diagnostic.ERROR) {
+ decoration.addOverlay(SmooksConfigurationActivator.getDefault().getImageRegistry().getDescriptor(
+ GraphicsConstants.IMAGE_OVR_ERROR), IDecoration.BOTTOM_RIGHT);
+ }
+ if (type == Diagnostic.WARNING) {
+ decoration.addOverlay(SmooksConfigurationActivator.getDefault().getImageRegistry().getDescriptor(
+ GraphicsConstants.IMAGE_OVR_WARING), IDecoration.BOTTOM_RIGHT);
+ }
+ }
+ } catch (Exception e) {
+ // e.printStackTrace();
+ }
+ }
+
+ @Override
+ public Image decorateImage(Image image, Object element, IDecorationContext context) {
+ return null;
+ }
+
+ @Override
+ public String decorateText(String text, Object element, IDecorationContext context) {
+ return null;
+ }
+
+ @Override
+ public boolean prepareDecoration(Object element, String originalText, IDecorationContext
context) {
+ return true;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/validate/ValidateResultLabelDecorator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain