Author: DartPeng
Date: 2008-11-17 03:35:46 -0500 (Mon, 17 Nov 2008)
New Revision: 11836
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateDecorater.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/Decorater.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterContentProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterLabelProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterSelectionDialog.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/util/SmooksModelUtils.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaBeanPropertiesSection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/AbstractSmooksModelDetailPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateTypeDetailPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResourceConfigWarrperFactory.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java
Log:
JBIDE-3200
1.Add a Date Decorater detals page on the Configuration page
2.Add a dialog to show all decorater ResourceConfigType and show the dialog when user
click the "customer type" button which is on JavaProperties Section.
3.Fix some "Control is dispose" bugs.
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/util/SmooksModelUtils.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/util/SmooksModelUtils.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/util/SmooksModelUtils.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -21,6 +21,7 @@
import org.jboss.tools.smooks.model.ParamType;
import org.jboss.tools.smooks.model.ResourceConfigType;
import org.jboss.tools.smooks.model.ResourceType;
+import org.jboss.tools.smooks.model.SmooksFactory;
import org.jboss.tools.smooks.model.SmooksPackage;
/**
@@ -30,11 +31,11 @@
public class SmooksModelUtils {
public static final String BEAN_CLASS = "beanClass";
-
+
public static final String BEAN_ID = "beanId";
-
+
public static final String BINDINGS = "bindings";
-
+
public static EStructuralFeature ATTRIBUTE_PROPERTY = ExtendedMetaData.INSTANCE
.demandFeature(null, "property", false);
@@ -54,12 +55,13 @@
param.getMixed().add(ELEMENT_BINDING, binding);
return binding;
}
-
+
public static List<Object> getBindingListFromResourceConfigType(
ResourceConfigType resourceConfig) {
List<ParamType> paramList = resourceConfig.getParam();
- for (Iterator<ParamType> iterator = paramList.iterator(); iterator.hasNext();) {
- ParamType param = iterator.next();
+ for (Iterator<ParamType> iterator = paramList.iterator(); iterator
+ .hasNext();) {
+ ParamType param = iterator.next();
if ("bindings".equals(param.getName())) {
if (param.eContents().isEmpty())
continue;
@@ -70,20 +72,22 @@
}
return null;
}
-
- public static String getTransformType(ResourceConfigType resourceConfig){
+
+ public static String getTransformType(ResourceConfigType resourceConfig) {
ParamType typeParam = null;
- if(resourceConfig == null) return "";
- if(isTransformTypeResourceConfig(resourceConfig)){
+ if (resourceConfig == null)
+ return "";
+ if (isTransformTypeResourceConfig(resourceConfig)) {
List paramList = resourceConfig.getParam();
for (Iterator iterator = paramList.iterator(); iterator.hasNext();) {
ParamType param = (ParamType) iterator.next();
- if (SmooksModelConstants.STREAM_FILTER_TYPE.equals(param.getName())) {
+ if (SmooksModelConstants.STREAM_FILTER_TYPE.equals(param
+ .getName())) {
typeParam = param;
break;
}
}
- if(typeParam != null){
+ if (typeParam != null) {
return SmooksModelUtils.getAnyTypeText(typeParam);
}
}
@@ -92,28 +96,31 @@
public static void setTransformType(ResourceConfigType resourceConfig,
String type) {
- if(type == null) type = "";
+ if (type == null)
+ type = "";
if (isTransformTypeResourceConfig(resourceConfig)) {
List paramList = resourceConfig.getParam();
for (Iterator iterator = paramList.iterator(); iterator.hasNext();) {
ParamType param = (ParamType) iterator.next();
- if (SmooksModelConstants.STREAM_FILTER_TYPE.equals(param.getName())) {
+ if (SmooksModelConstants.STREAM_FILTER_TYPE.equals(param
+ .getName())) {
cleanTextToSmooksType(param);
setTextToSmooksType(param, type);
}
}
}
}
-
- public static boolean isFilePathResourceConfig(ResourceConfigType resourceConfig){
+
+ public static boolean isFilePathResourceConfig(
+ ResourceConfigType resourceConfig) {
ResourceType resource = resourceConfig.getResource();
- if(resource != null){
+ if (resource != null) {
String value = resource.getValue();
- if(value != null){
- if(value.startsWith("\\")){
+ if (value != null) {
+ if (value.startsWith("\\")) {
return true;
}
- if(value.startsWith("/")){
+ if (value.startsWith("/")) {
return true;
}
}
@@ -142,12 +149,31 @@
}
}
+ public static void setParamText(String paramName, String value,
+ ResourceConfigType resourceConfigType) {
+ List<ParamType> list = resourceConfigType.getParam();
+ ParamType param = null;
+ for (Iterator<ParamType> iterator = list.iterator(); iterator.hasNext();) {
+ ParamType paramType = (ParamType) iterator.next();
+ if (paramType.getName().equalsIgnoreCase(paramName)) {
+ param = paramType;
+ break;
+ }
+ }
+ if (param == null) {
+ param = SmooksFactory.eINSTANCE.createParamType();
+ resourceConfigType.getParam().add(param);
+ }
+ param.setName(paramName);
+ setTextToSmooksType(param, value);
+ }
+
public static String getParmaText(String paramName,
ResourceConfigType resourceConfigType) {
List plist = resourceConfigType.getParam();
for (Iterator iterator = plist.iterator(); iterator.hasNext();) {
ParamType p = (ParamType) iterator.next();
- if (paramName.equals(p.getName())) {
+ if (paramName.equalsIgnoreCase(p.getName())) {
return getAnyTypeText(p);
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaBeanPropertiesSection.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaBeanPropertiesSection.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/ui/JavaBeanPropertiesSection.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -12,8 +12,8 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditPart;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.GraphicalViewer;
import org.eclipse.jdt.core.IJavaProject;
@@ -24,6 +24,7 @@
import org.eclipse.jdt.internal.ui.search.JavaSearchScopeFactory;
import org.eclipse.jdt.ui.IJavaElementSearchConstants;
import org.eclipse.jdt.ui.JavaUI;
+import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -33,7 +34,6 @@
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -46,9 +46,14 @@
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.model.DocumentRoot;
+import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.ui.AbstractSmooksPropertySection;
import org.jboss.tools.smooks.ui.SmooksUIActivator;
-import org.jboss.tools.smooks.ui.gef.editparts.AbstractStructuredDataEditPart;
+import org.jboss.tools.smooks.ui.editors.Decorater;
+import org.jboss.tools.smooks.ui.editors.DecoraterSelectionDialog;
+import org.jboss.tools.smooks.ui.editors.SmooksFormEditor;
+import org.jboss.tools.smooks.ui.editors.SmooksGraphicalFormPage;
import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
import org.jboss.tools.smooks.ui.gef.model.PropertyModel;
@@ -82,7 +87,8 @@
.getWidgetFactory();
Section section = createRootSection(factory, parent);
- section.setText(Messages.getString("JavaBeanPropertiesSection.JavaBeanProperties"));
//$NON-NLS-1$
+ section.setText(Messages
+ .getString("JavaBeanPropertiesSection.JavaBeanProperties")); //$NON-NLS-1$
Composite controlComposite = factory.createComposite(section);
section.setClient(controlComposite);
GridLayout gl = new GridLayout();
@@ -90,7 +96,8 @@
controlComposite.setLayout(gl);
- factory.createLabel(controlComposite,
Messages.getString("JavaBeanPropertiesSection.TargetInstanceClass"));
//$NON-NLS-1$
+ factory.createLabel(controlComposite, Messages
+ .getString("JavaBeanPropertiesSection.TargetInstanceClass"));
//$NON-NLS-1$
instanceClassComposite = factory.createComposite(controlComposite);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
@@ -104,7 +111,8 @@
gd.grabExcessHorizontalSpace = true;
instanceClassText.setLayoutData(gd);
- Button button1 = factory.createButton(instanceClassComposite,
Messages.getString("JavaBeanPropertiesSection.Browse"), //$NON-NLS-1$
+ Button button1 = factory.createButton(instanceClassComposite, Messages
+ .getString("JavaBeanPropertiesSection.Browse"), //$NON-NLS-1$
SWT.NONE);
button1.addSelectionListener(new SelectionAdapter() {
@@ -115,7 +123,8 @@
});
- factory.createLabel(controlComposite,
Messages.getString("JavaBeanPropertiesSection.MappingType")); //$NON-NLS-1$
+ factory.createLabel(controlComposite, Messages
+ .getString("JavaBeanPropertiesSection.MappingType")); //$NON-NLS-1$
typeComposite = factory.createComposite(controlComposite);
gd = new GridData(GridData.FILL_HORIZONTAL);
typeComposite.setLayoutData(gd);
@@ -146,7 +155,8 @@
GridLayout buttonLayout = new GridLayout();
buttonLayout.numColumns = 2;
buttonCom.setLayout(buttonLayout);
- Button button3 = factory.createButton(buttonCom,
Messages.getString("JavaBeanPropertiesSection.ClassBrowse"), //$NON-NLS-1$
+ Button button3 = factory.createButton(buttonCom, Messages
+ .getString("JavaBeanPropertiesSection.ClassBrowse"), //$NON-NLS-1$
SWT.NONE);
button3.addSelectionListener(new SelectionAdapter() {
@@ -157,7 +167,8 @@
});
- Button button2 = factory.createButton(buttonCom,
Messages.getString("JavaBeanPropertiesSection.CustomTypeBrowse"), //$NON-NLS-1$
+ Button button2 = factory.createButton(buttonCom, Messages
+ .getString("JavaBeanPropertiesSection.CustomTypeBrowse"), //$NON-NLS-1$
SWT.NONE);
button2.addSelectionListener(new SelectionAdapter() {
@@ -192,14 +203,32 @@
}
protected void browseBeanCustomTypeButtonSelected() {
-
+ SmooksGraphicalFormPage page = this.getGraphicalEditor();
+ SmooksFormEditor editor = (SmooksFormEditor) page.getEditor();
+ Resource resource = editor.getSmooksResource();
+ if(resource.getContents().isEmpty()){
+ return;
+ }
+ DocumentRoot root = (DocumentRoot) resource.getContents().get(0);
+ SmooksResourceListType list = root.getSmooksResourceList();
+ DecoraterSelectionDialog dialog = new
DecoraterSelectionDialog(getPart().getSite().getShell(),list);
+ if (dialog.open() == Dialog.OK) {
+ Decorater decorater = dialog.getSelectedDecorater();
+ if(decorater != null){
+ String selector = decorater.getSelector();
+ classTypeText.setText(selector);
+ }
+ }
}
protected void openJavaTypeDialog(Text text) {
IJavaProject javaProject = createNewProjectClassLoader();
if (javaProject == null) {
- MessageDialog.openError(this.getPart().getSite().getShell(),
- Messages.getString("JavaBeanPropertiesSection.ErrorMessageTitle"),
Messages.getString("JavaBeanPropertiesSection.TypeDialogErrorMessage"));
//$NON-NLS-1$ //$NON-NLS-2$
+ MessageDialog
+ .openError(
+ this.getPart().getSite().getShell(),
+ Messages
+ .getString("JavaBeanPropertiesSection.ErrorMessageTitle"),
Messages.getString("JavaBeanPropertiesSection.TypeDialogErrorMessage"));
//$NON-NLS-1$ //$NON-NLS-2$
return;
}
IJavaSearchScope scope = JavaSearchScopeFactory.getInstance()
@@ -210,8 +239,10 @@
SmooksUIActivator.getDefault().getWorkbench()
.getActiveWorkbenchWindow(), scope,
IJavaElementSearchConstants.CONSIDER_CLASSES, false);
- dialog.setMessage(Messages.getString("JavaBeanPropertiesSection.JavaType"));
//$NON-NLS-1$
- dialog.setTitle(Messages.getString("JavaBeanPropertiesSection.SearchJavaType"));
//$NON-NLS-1$
+ dialog.setMessage(Messages
+ .getString("JavaBeanPropertiesSection.JavaType")); //$NON-NLS-1$
+ dialog.setTitle(Messages
+ .getString("JavaBeanPropertiesSection.SearchJavaType")); //$NON-NLS-1$
if (dialog.open() == Window.OK) {
Object[] results = dialog.getResult();
@@ -292,13 +323,15 @@
}
return null;
}
+
protected JavaBeanModel getTargetJavaBeanModel() {
LineConnectionModel connection = getLineConnectionModel();
- if(connection != null){
- AbstractStructuredDataModel t = (AbstractStructuredDataModel)connection.getTarget();
+ if (connection != null) {
+ AbstractStructuredDataModel t = (AbstractStructuredDataModel) connection
+ .getTarget();
Object target = t.getReferenceEntityModel();
- if(target != null && target instanceof JavaBeanModel){
- return (JavaBeanModel)target;
+ if (target != null && target instanceof JavaBeanModel) {
+ return (JavaBeanModel) target;
}
}
return null;
@@ -313,7 +346,7 @@
if (type == null)
type = ""; //$NON-NLS-1$
LineConnectionModel connection = getLineConnectionModel();
- if(connection == null){
+ if (connection == null) {
instanceClassComposite.setEnabled(false);
typeComposite.setEnabled(false);
return;
@@ -322,7 +355,7 @@
if (model != null) {
// if (!instanceClassComposite.getEnabled())
instanceClassComposite.setEnabled(true);
-// classTypeText.setEnabled(false);
+ // classTypeText.setEnabled(false);
String className = model.getBeanClassString();
lockEventFire();
this.classTypeText.setText(""); //$NON-NLS-1$
@@ -344,12 +377,15 @@
}
private String getTypeProperty(LineConnectionModel connection) {
- if(connection == null) return null;
+ if (connection == null)
+ return null;
Object[] properties = connection.getPropertyArray();
- if(properties == null) return null;
+ if (properties == null)
+ return null;
for (int i = 0; i < properties.length; i++) {
PropertyModel pro = (PropertyModel) properties[i];
- if
(Messages.getString("JavaBeanPropertiesSection.TypePropertyName").equalsIgnoreCase(pro.getName()))
{ //$NON-NLS-1$
+ if (Messages
+ .getString("JavaBeanPropertiesSection.TypePropertyName").equalsIgnoreCase(pro.getName()))
{ //$NON-NLS-1$
return pro.getValue();
}
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/AbstractSmooksPropertySection.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -26,26 +26,39 @@
*
*/
public class AbstractSmooksPropertySection extends AbstractPropertySection {
-
+
protected boolean lock = false;
-
+
protected void fireDirty() {
+ SmooksGraphicalFormPage page = this.getGraphicalEditor();
+ if (page != null) {
+ SmooksFormEditor editor = (SmooksFormEditor) ((SmooksGraphicalFormPage) page)
+ .getEditor();
+ editor.fireEditorDirty(true);
+ }
+ }
+
+ public SmooksGraphicalFormPage getGraphicalEditor() {
IStructuredSelection selection = (IStructuredSelection) this
.getSelection();
Object obj = selection.getFirstElement();
if (obj == null)
- return;
+ return null;
if (obj instanceof GraphicalEditPart) {
- GraphicalViewer viewer = (GraphicalViewer) ((GraphicalEditPart)obj).getViewer();
- IEditorPart part = ((DefaultEditDomain)viewer.getEditDomain()).getEditorPart();
- if(part instanceof SmooksGraphicalFormPage){
- SmooksFormEditor editor =
(SmooksFormEditor)((SmooksGraphicalFormPage)part).getEditor();
- editor.fireEditorDirty(true);
+ GraphicalViewer viewer = (GraphicalViewer) ((GraphicalEditPart) obj)
+ .getViewer();
+ IEditorPart part = ((DefaultEditDomain) viewer.getEditDomain())
+ .getEditorPart();
+ if (part instanceof SmooksGraphicalFormPage) {
+ return (SmooksGraphicalFormPage) part;
}
}
+
+ return null;
}
-
- protected Section createRootSection(TabbedPropertySheetWidgetFactory factory , Composite
parent){
+
+ protected Section createRootSection(
+ TabbedPropertySheetWidgetFactory factory, Composite parent) {
Composite main = factory.createComposite(parent);
FillLayout fill = new FillLayout();
fill.marginHeight = 8;
@@ -70,11 +83,11 @@
}
return null;
}
-
+
public boolean isLock() {
return lock;
}
-
+
protected void unLockEventFire() {
lock = false;
}
@@ -83,6 +96,4 @@
lock = true;
}
-
-
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/AbstractSmooksModelDetailPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/AbstractSmooksModelDetailPage.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/AbstractSmooksModelDetailPage.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.smooks.ui.editors;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -21,6 +22,7 @@
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
import org.jboss.tools.smooks.model.ResourceConfigType;
+import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.ui.ResourceConfigWarrper;
/**
@@ -155,6 +157,25 @@
public boolean setFormInput(Object input) {
return false;
}
+
+ public SmooksResourceListType getSmooksResourceList(){
+ if(resourceConfigList != null){
+ EObject parent = resourceConfigList.eContainer();
+ while(parent != null){
+ EObject temp = parent.eContainer();
+ if(temp == null){
+ break;
+ }
+ parent = temp;
+ if(parent instanceof SmooksResourceListType){
+ break;
+ }
+ }
+ return (SmooksResourceListType) parent;
+ }
+
+ return null;
+ }
/*
* (non-Javadoc)
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateDecorater.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateDecorater.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateDecorater.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -0,0 +1,17 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+/**
+ * @author Dart
+ *
+ */
+public class DateDecorater extends Decorater{
+
+ public DateDecorater(String selector) {
+ super(selector);
+ // TODO Auto-generated constructor stub
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateDecorater.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateTypeDetailPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateTypeDetailPage.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DateTypeDetailPage.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -12,6 +12,8 @@
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
@@ -28,6 +30,7 @@
private Text formatText;
private Combo localeLangaugeCombo;
private Combo localeContryCombo;
+ private Text selectorText;
public DateTypeDetailPage(SmooksFormEditor parentEditor,
EditingDomain domain) {
@@ -45,8 +48,14 @@
GridLayout layout = new GridLayout();
layout.numColumns = 2;
parent.setLayout(layout);
+
+ this.formToolKit.createLabel(parent, "Name :");
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ selectorText = this.formToolKit.createText(parent, ""); //$NON-NLS-1$
+ selectorText.setLayoutData(gd);
+
this.formToolKit.createLabel(parent,
Messages.getString("DateTypeDetailPage.DateTypeFormatText")); //$NON-NLS-1$
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
formatText = this.formToolKit.createText(parent, ""); //$NON-NLS-1$
formatText.setLayoutData(gd);
@@ -61,19 +70,98 @@
localeContryCombo.setLayoutData(gd);
formToolKit.paintBordersFor(parent);
+
+ hookControls();
}
+ private void hookControls() {
+ selectorText.addModifyListener(new ModifyListener(){
+ public void modifyText(ModifyEvent e) {
+ setSelector();
+ }
+ });
+
+ formatText.addModifyListener(new ModifyListener(){
+
+ public void modifyText(ModifyEvent e) {
+ setFormat();
+ }
+
+ });
+
+ localeContryCombo.addModifyListener(new ModifyListener(){
+
+ public void modifyText(ModifyEvent e) {
+ setLocalContry();
+ }
+
+ });
+
+ localeLangaugeCombo.addModifyListener(new ModifyListener(){
+
+ public void modifyText(ModifyEvent e) {
+ setLocalLang();
+ }
+
+ });
+ }
+
+ protected void setFormat() {
+ String format = formatText.getText();
+ if(format == null) format = "";
+ SmooksModelUtils.setParamText("format", format, resourceConfigList);
+ this.parentEditor.fireEditorDirty(true);
+ }
+
+ protected void setLocalLang() {
+ String ll = localeLangaugeCombo.getText();
+ if(ll == null) ll = "";
+ SmooksModelUtils.setParamText("locale-language", ll, resourceConfigList);
+ this.parentEditor.fireEditorDirty(true);
+ }
+
+ protected void setLocalContry() {
+ String lc = localeContryCombo.getText();
+ if(lc == null) lc = "";
+ SmooksModelUtils.setParamText("locale-country", lc, resourceConfigList);
+ this.parentEditor.fireEditorDirty(true);
+ }
+
+ protected void setSelector() {
+ String text = selectorText.getText();
+ if(text == null || text.length() == 0){
+ resourceConfigList.setSelector("");
+ this.parentEditor.fireEditorDirty(true);
+ return;
+ }
+ text = "decorat:"+text;
+ if(this.resourceConfigList != null){
+ resourceConfigList.setSelector(text);
+ this.parentEditor.fireEditorDirty(true);
+ }
+ }
+
+ private String getSelectorName(String selector){
+ if(selector == null) return "";
+ if(selector.indexOf(":") != -1){
+ return selector.substring(selector.indexOf(":") + 1,selector.length());
+ }
+ return selector;
+ }
+
@Override
protected void initSectionUI() {
if(this.resourceConfigList != null){
String formate = SmooksModelUtils.getParmaText("format",
resourceConfigList); //$NON-NLS-1$
String locallang = SmooksModelUtils.getParmaText("Locale-Language",
resourceConfigList); //$NON-NLS-1$
- String localcontry = SmooksModelUtils.getParmaText("Locale-Contry",
resourceConfigList); //$NON-NLS-1$
+ String localcontry = SmooksModelUtils.getParmaText("locale-country",
resourceConfigList); //$NON-NLS-1$
if(formate == null) formate = ""; //$NON-NLS-1$
if(locallang == null) locallang = ""; //$NON-NLS-1$
if(localcontry == null) localcontry = ""; //$NON-NLS-1$
-
+ String selector = resourceConfigList.getSelector();
+ selector = getSelectorName(selector);
+ selectorText.setText(selector);
formatText.setText(formate);
localeContryCombo.setText(localcontry);
localeLangaugeCombo.setText(locallang);
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/Decorater.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/Decorater.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/Decorater.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+/**
+ * @author Dart
+ *
+ */
+public class Decorater {
+ private String selector;
+
+ public Decorater(String selector){
+ setSelector(selector);
+ }
+
+ public String getSelector() {
+ return selector;
+ }
+
+ public void setSelector(String selector) {
+ this.selector = selector;
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/Decorater.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterContentProvider.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterContentProvider.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterContentProvider.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -0,0 +1,53 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+
+/**
+ * @author Dart
+ *
+ */
+public class DecoraterContentProvider implements ITreeContentProvider {
+
+ public Object[] getChildren(Object parentElement) {
+ if(parentElement instanceof List){
+ if(!((List)parentElement).isEmpty()){
+ return ((List)parentElement).toArray();
+ }
+ }
+ return new Object[]{};
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ if(element instanceof List){
+ return !((List)element).isEmpty();
+ }
+ return false;
+ }
+
+ public Object[] getElements(Object inputElement) {
+ if(inputElement instanceof List){
+ return ((List)inputElement).toArray();
+ }
+ return new Object[]{};
+ }
+
+ public void dispose() {
+
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterContentProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterLabelProvider.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterLabelProvider.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterLabelProvider.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -0,0 +1,39 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * @author Dart
+ *
+ */
+public class DecoraterLabelProvider extends LabelProvider {
+
+ @Override
+ public Image getImage(Object element) {
+ return super.getImage(element);
+ }
+
+ @Override
+ public String getText(Object element) {
+ if(element instanceof List){
+ if(!((List)element).isEmpty()){
+ Object obj = ((List)element).get(0);
+ if(obj instanceof DateDecorater){
+ return "Date decorater list";
+ }
+ }
+ return "Unknown decorater list";
+ }
+ if(element instanceof Decorater){
+ return ((Decorater)element).getSelector();
+ }
+ return super.getText(element);
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterLabelProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterSelectionDialog.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterSelectionDialog.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterSelectionDialog.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -0,0 +1,164 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.smooks.model.ResourceConfigType;
+import org.jboss.tools.smooks.model.ResourceType;
+import org.jboss.tools.smooks.model.SmooksResourceListType;
+
+/**
+ * @author Dart
+ *
+ */
+public class DecoraterSelectionDialog extends Dialog implements
+ ISelectionChangedListener {
+
+ private SmooksResourceListType resourceList;
+
+ private Decorater selectedDecorater;
+
+ private TreeViewer viewer;
+
+ public Decorater getSelectedDecorater() {
+ return selectedDecorater;
+ }
+
+ public void setSelectedDecorater(Decorater selectedDecorater) {
+ this.selectedDecorater = selectedDecorater;
+ }
+
+ public DecoraterSelectionDialog(IShellProvider parentShell) {
+ super(parentShell);
+ }
+
+ public DecoraterSelectionDialog(Shell parentShell,
+ SmooksResourceListType list) {
+ super(parentShell);
+ this.resourceList = list;
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ Composite composite = (Composite) super.createDialogArea(parent);
+ GridData gd = new GridData(GridData.FILL_BOTH);
+ gd.heightHint = 400;
+ gd.widthHint = 200;
+ composite.setLayoutData(gd);
+ composite.setLayout(new FillLayout());
+ viewer = new TreeViewer(composite, SWT.NONE);
+ viewer.setContentProvider(new DecoraterContentProvider());
+ viewer.setLabelProvider(new DecoraterLabelProvider());
+ viewer.addSelectionChangedListener(this);
+ viewer.addDoubleClickListener(new IDoubleClickListener() {
+
+ public void doubleClick(DoubleClickEvent event) {
+ IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+ Object obj = selection.getFirstElement();
+ if (obj == null) {
+ return;
+ }
+ if(obj instanceof Decorater){
+ okPressed();
+ }
+ }
+ });
+ initViewer(viewer);
+ return composite;
+ }
+
+ private void initViewer(TreeViewer viewer) {
+ if (resourceList != null) {
+ List allList = new ArrayList();
+ List dateDecoraterList = new ArrayList();
+ allList.add(dateDecoraterList);
+ List list = resourceList.getAbstractResourceConfig();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ResourceConfigType config = (ResourceConfigType) iterator
+ .next();
+ String selector = config.getSelector();
+
+ if (selector != null && selector.indexOf(":") != -1) {
+ String selector1 = selector.substring(0, selector
+ .indexOf(":"));
+ selector1 = selector1.trim();
+ String selector2 = selector.substring(selector
+ .indexOf(":") + 1 , selector.length());
+ selector2 = selector2.trim();
+ if (selector1.equals("decorat")) {
+ ResourceType resource = config.getResource();
+ if (resource != null) {
+ String value = resource.getValue();
+ if(value != null) value = value.trim();
+ if ("org.milyn.javabean.decoders.DateDecoder"
+ .equals(value)) {
+ dateDecoraterList.add(new DateDecorater(
+ selector2));
+ }
+ }
+ }
+ }
+ }
+ viewer.setInput(allList);
+ }
+ }
+
+ private void updateButtonStatus() {
+ if (this.getSelectedDecorater() == null) {
+ Button button = this.getButton(IDialogConstants.OK_ID);
+ if (button != null)
+ button.setEnabled(false);
+ } else {
+ Button button = this.getButton(IDialogConstants.OK_ID);
+ if (button != null)
+ button.setEnabled(true);
+ }
+ }
+
+ public static Decorater openDialog(Shell shell,
+ SmooksResourceListType resourceList) {
+ DecoraterSelectionDialog dialog = new DecoraterSelectionDialog(shell,
+ resourceList);
+ if (dialog.open() == Dialog.OK) {
+ return dialog.getSelectedDecorater();
+ }
+ return null;
+ }
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection selection = (IStructuredSelection) viewer
+ .getSelection();
+ Object obj = selection.getFirstElement();
+ if (obj == null) {
+ setSelectedDecorater(null);
+ } else {
+ if (obj instanceof Decorater) {
+ this.setSelectedDecorater((Decorater) obj);
+ }else{
+ setSelectedDecorater(null);
+ }
+ }
+ updateButtonStatus();
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/DecoraterSelectionDialog.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResourceConfigWarrperFactory.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResourceConfigWarrperFactory.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResourceConfigWarrperFactory.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -48,7 +48,9 @@
ResourceType resource = type.getResource();
if (resource == null)
return false;
- if (SmooksModelConstants.BEAN_POPULATOR.equals(resource.getValue())) {
+ String value = resource.getValue();
+ if(value != null) value = value.trim();
+ if (SmooksModelConstants.BEAN_POPULATOR.equals(value)) {
return true;
}
return false;
@@ -58,7 +60,9 @@
ResourceType resource = type.getResource();
if (resource == null)
return false;
- if (SmooksModelConstants.DATE_DECODER.equals(resource.getValue())) {
+ String value = resource.getValue();
+ if(value != null) value = value.trim();
+ if (SmooksModelConstants.DATE_DECODER.equals(value)) {
return true;
}
return false;
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/editparts/StructuredDataConnectionEditPart.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -26,30 +26,30 @@
import org.jboss.tools.smooks.ui.gef.util.GraphicsConstants;
public class StructuredDataConnectionEditPart extends
- AbstractConnectionEditPart implements PropertyChangeListener{
+ AbstractConnectionEditPart implements PropertyChangeListener {
public StructuredDataConnectionEditPart() {
super();
}
-
+
public void activate() {
super.activate();
Object model = getModel();
- if(model instanceof AbstractStructuredDataConnectionModel){
- ((AbstractStructuredDataConnectionModel)model).addPropertyChangeListener(this);
+ if (model instanceof AbstractStructuredDataConnectionModel) {
+ ((AbstractStructuredDataConnectionModel) model)
+ .addPropertyChangeListener(this);
}
}
public void deactivate() {
Object model = getModel();
- if(model instanceof AbstractStructuredDataConnectionModel){
- ((AbstractStructuredDataConnectionModel)model).removePropertyChangeListener(this);
+ if (model instanceof AbstractStructuredDataConnectionModel) {
+ ((AbstractStructuredDataConnectionModel) model)
+ .removePropertyChangeListener(this);
}
super.deactivate();
}
-
-
/*
* (non-Javadoc)
*
@@ -174,15 +174,21 @@
Tree targetTree = null;
if (source instanceof TreeItemRelationModel) {
TreeItem item = ((TreeItemRelationModel) source).getTreeItem();
- item.setData(TreeItemRelationModel.PRO_TREE_ITEM_SELECTION_STATUS,
- new Boolean(selected));
- sourceTree = item.getParent();
+ if (!item.isDisposed()) {
+ item.setData(
+ TreeItemRelationModel.PRO_TREE_ITEM_SELECTION_STATUS,
+ new Boolean(selected));
+ sourceTree = item.getParent();
+ }
}
if (target instanceof TreeItemRelationModel) {
TreeItem item = ((TreeItemRelationModel) target).getTreeItem();
- item.setData(TreeItemRelationModel.PRO_TREE_ITEM_SELECTION_STATUS,
- new Boolean(selected));
- targetTree = item.getParent();
+ if (!item.isDisposed()) {
+ item.setData(
+ TreeItemRelationModel.PRO_TREE_ITEM_SELECTION_STATUS,
+ new Boolean(selected));
+ targetTree = item.getParent();
+ }
}
refreshTree(sourceTree);
refreshTree(targetTree);
@@ -211,6 +217,6 @@
}
public void propertyChange(PropertyChangeEvent evt) {
-
+
}
}
\ No newline at end of file
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java 2008-11-17
06:33:24 UTC (rev 11835)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/figures/TreeItemRelationFigure.java 2008-11-17
08:35:46 UTC (rev 11836)
@@ -40,7 +40,11 @@
graphics.pushState();
graphics.setForegroundColor(ColorConstants.red);
- graphics.drawText(treeItem.getText(), getBounds().getTopLeft());
+ if (!treeItem.isDisposed()) {
+ String text = treeItem.getText();
+ if (text != null)
+ graphics.drawText(text, getBounds().getTopLeft());
+ }
graphics.popState();
}