JBoss Tools SVN: r11188 - in branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks: ui and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2008-10-26 09:35:53 -0400 (Sun, 26 Oct 2008)
New Revision: 11188
Added:
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
Removed:
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java
Modified:
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
Log:
JBIDE-2988
add a text editor to show text contents when Smooks tools can't parse the file or dosen't support transform data type.
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-26 13:32:55 UTC (rev 11187)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-26 13:35:53 UTC (rev 11188)
@@ -156,8 +156,7 @@
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType, Object sourceObject,
Object targetObject) {
- // TODO Auto-generated method stub
- return null;
+ throw new RuntimeException("The Smooks editor doesn't support to parse the Java2XML config file currently.The feature is coming soon..");
}
protected String getTheJavaBeanString(JavaBeanModel currentModel) {
Added: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java (rev 0)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java 2008-10-26 13:35:53 UTC (rev 11188)
@@ -0,0 +1,70 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.editors.text.TextEditor;
+import org.jboss.tools.smooks.utils.SmooksGraphConstants;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksTextEdtor extends TextEditor {
+
+ private Throwable error;
+
+ public SmooksTextEdtor(Throwable error) {
+ super();
+ Assert.isNotNull(error);
+ this.error = error;
+ while(error != null && error instanceof InvocationTargetException){
+ error = ((InvocationTargetException)error).getTargetException();
+ }
+ }
+
+ public void createPartControl(Composite parent) {
+ GridLayout gridLayout = new GridLayout();
+ parent.setLayout(gridLayout);
+ Composite errorComposite = new Composite(parent, SWT.BORDER);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ errorComposite.setLayoutData(gd);
+
+ Label noticeLabel = new Label(errorComposite, SWT.NONE);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ noticeLabel.setLayoutData(gd);
+ noticeLabel
+ .setText("Because there occurs some error during parse/load the Smooks configuration file , the graphical editor can't be opened.Error : ");
+
+ GridLayout gl = new GridLayout();
+ gl.numColumns = 2;
+ errorComposite.setLayout(gl);
+
+ gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
+ Label imagelabel = new Label(errorComposite, SWT.NONE);
+ imagelabel.setLayoutData(gd);
+ imagelabel.setImage(SmooksUIActivator.getDefault().getImageRegistry()
+ .get(SmooksGraphConstants.IMAGE_ERROR));
+
+ Label messageLabel = new Label(errorComposite, SWT.NONE);
+ messageLabel.setText(error.getLocalizedMessage());
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ messageLabel.setLayoutData(gd);
+
+ Composite textComposite = new Composite(parent, SWT.NONE);
+ gd = new GridData(GridData.FILL_BOTH);
+ textComposite.setLayoutData(gd);
+ textComposite.setLayout(new FillLayout());
+ super.createPartControl(textComposite);
+ }
+}
Property changes on: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2008-10-26 13:32:55 UTC (rev 11187)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2008-10-26 13:35:53 UTC (rev 11188)
@@ -24,10 +24,12 @@
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
@@ -39,6 +41,7 @@
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.provider.SmooksItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.util.SmooksResourceFactoryImpl;
+import org.jboss.tools.smooks.ui.SmooksTextEdtor;
import org.jboss.tools.smooks.utils.UIUtils;
/**
@@ -47,7 +50,7 @@
*/
public class SmooksFormEditor extends FormEditor implements
ITabbedPropertySheetPageContributor {
-
+
SmooksGraphicalFormPage graphicalPage = null;
private TabbedPropertySheetPage tabbedPropertySheetPage;
private SmooksNormalContentEditFormPage normalPage;
@@ -56,7 +59,11 @@
private AdapterFactoryEditingDomain editingDomain;
private Resource smooksResource;
+ private SmooksTextEdtor textEdtior = null;
+
private boolean forceDirty = false;
+ private boolean onlyShowTextEditor = false;
+ private Throwable showTextEditorReason = null;
public SmooksFormEditor() {
super();
@@ -81,6 +88,7 @@
@Override
protected void addPages() {
+
try {
graphicalPage = new SmooksGraphicalFormPage(this, "graph",
"Mapping");
@@ -92,22 +100,49 @@
setPageText(index, "Normal");
// Set a default NormalPacakge to Normal Page
this.refreshNormalPage(Collections.EMPTY_LIST);
+ if (onlyShowTextEditor) {
+ removeGraphicalFormPage();
+ }
} catch (Exception e) {
UIUtils.showErrorDialog(getSite().getShell(), UIUtils
.createErrorStatus(e));
}
}
+ public void setOnlyShowTextEditor(boolean onlyShowTextEditor,
+ Throwable reason) {
+ this.onlyShowTextEditor = onlyShowTextEditor;
+ this.showTextEditorReason = reason;
+ }
+
+ public void removeGraphicalFormPage() {
+ int count = this.getPageCount();
+ try {
+ if (textEdtior == null) {
+ textEdtior = new SmooksTextEdtor(showTextEditorReason);
+ this.addPage(textEdtior, getEditorInput());
+ for (int i = 0; i < count; i++) {
+ this.removePage(0);
+ }
+ }
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+
/*
* (non-Javadoc)
*
- * @see org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite,
- * org.eclipse.ui.IEditorInput)
+ * @see
+ * org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite,
+ * org.eclipse.ui.IEditorInput)
*/
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
super.init(site, input);
+ onlyShowTextEditor = false;
+ Throwable parsingException = null;
IFile file = ((IFileEditorInput) input).getFile();
String path = file.getLocation().toOSString();
if (this.getEditingDomain() != null && smooksResource == null) {
@@ -117,29 +152,39 @@
try {
smooksResource.load(Collections.EMPTY_MAP);
} catch (IOException e) {
- e.printStackTrace();
+ parsingException = e;
}
}
+
+ if (parsingException != null) {
+ onlyShowTextEditor = true;
+ showTextEditorReason = parsingException;
+ return;
+ }
+
DocumentRoot documentRoot = null;
- if(smooksResource.getContents().isEmpty()){
+ if (smooksResource.getContents().isEmpty()) {
documentRoot = SmooksFactory.eINSTANCE.createDocumentRoot();
smooksResource.getContents().add(documentRoot);
- }else{
- documentRoot = (DocumentRoot) smooksResource.getContents().get(0);
+ } else {
+ documentRoot = (DocumentRoot) smooksResource.getContents().get(
+ 0);
}
-
- SmooksResourceListType resourceList = documentRoot.getSmooksResourceList();
- if(resourceList == null){
- resourceList = SmooksFactory.eINSTANCE.createSmooksResourceListType();
+
+ SmooksResourceListType resourceList = documentRoot
+ .getSmooksResourceList();
+ if (resourceList == null) {
+ resourceList = SmooksFactory.eINSTANCE
+ .createSmooksResourceListType();
documentRoot.setSmooksResourceList(resourceList);
}
-
+
}
}
public void refreshNormalPage(List resourceHidenConfigs) {
NormalSmooksModelPackage modelPackage = createSmooksModelPackage();
- if (modelPackage != null){
+ if (modelPackage != null) {
modelPackage.setHidenSmooksElements(resourceHidenConfigs);
}
if (this.normalPage != null) {
@@ -161,6 +206,13 @@
@Override
public void doSave(IProgressMonitor monitor) {
+ if(onlyShowTextEditor){
+ if(textEdtior != null){
+ textEdtior.doSave(monitor);
+ fireEditorDirty(false);
+ return;
+ }
+ }
graphicalPage.doSave(monitor);
fireEditorDirty(false);
}
@@ -172,8 +224,11 @@
@Override
public void doSaveAs() {
- // TODO Auto-generated method stub
-
+ if(onlyShowTextEditor){
+ if(textEdtior != null){
+ textEdtior.doSaveAs();
+ }
+ }
}
@Override
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 13:32:55 UTC (rev 11187)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 13:35:53 UTC (rev 11188)
@@ -253,21 +253,6 @@
@Override
protected void createFormContent(IManagedForm managedForm) {
- try {
- this.initTransformViewerModel((IEditorSite) getSite(),
- getEditorInput());
- if (mappingResourceConfigList != null)
- callParentRefillNormalModelInfor(mappingResourceConfigList
- .getRelationgResourceConfigList());
- } catch (IOWrappedException ex) {
- MessageDialog.openWarning(getSite().getShell(), "Waring",
- "Exceptions occurd during parsing Smooks file, no worries");
- } catch (Throwable e) {
- Status status = UIUtils.createErrorStatus(e);
- ErrorDialog.openError(getSite().getShell(), "Error", "error",
- status);
- }
-
final ScrolledForm form = managedForm.getForm();
FormToolkit toolkit = managedForm.getToolkit();
@@ -927,7 +912,6 @@
.getSmooksConfigurationFileGenerateContext());
} catch (Throwable t) {
// ignore
- t.printStackTrace();
}
IFile file = ((IFileEditorInput) input).getFile();
if (sourceDataTypeID == null || targetDataTypeID == null) {
@@ -1000,8 +984,22 @@
this.targetTreeViewerInputModel = ((SmooksFileEditorInput) input)
.getTargetTreeViewerInputContents();
}
-
- // }
+ Throwable throwable = null;
+ try {
+ this.initTransformViewerModel((IEditorSite) getSite(),
+ getEditorInput());
+ if (mappingResourceConfigList != null)
+ callParentRefillNormalModelInfor(mappingResourceConfigList
+ .getRelationgResourceConfigList());
+ } catch (IOWrappedException ex) {
+ MessageDialog.openWarning(getSite().getShell(), "Waring",
+ "Exceptions occurd during parsing Smooks file, no worries");
+ } catch (Throwable e) {
+ throwable = e;
+ }
+ if (throwable != null) {
+ ((SmooksFormEditor) getEditor()).setOnlyShowTextEditor(true,throwable);
+ }
}
protected void initFormEditorWithGraphInfo(GraphInformations graph) {
@@ -1342,7 +1340,8 @@
}
updateNotifyMessage();
} catch (CoreException e) {
- UIUtils.showErrorDialog(getSite().getShell(), UIUtils.createErrorStatus(e));
+ UIUtils.showErrorDialog(getSite().getShell(), UIUtils
+ .createErrorStatus(e));
}
}
Deleted: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java 2008-10-26 13:32:55 UTC (rev 11187)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java 2008-10-26 13:35:53 UTC (rev 11188)
@@ -1,241 +0,0 @@
-package org.jboss.tools.smooks.ui.editors;
-
-
-import java.io.StringWriter;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FontDialog;
-import org.eclipse.ui.*;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * An example showing how to create a multi-page editor.
- * This example has 3 pages:
- * <ul>
- * <li>page 0 contains a nested text editor.
- * <li>page 1 allows you to change the font used in page 2
- * <li>page 2 shows the words in page 0 in sorted order
- * </ul>
- */
-public class SmooksMultiPageEditor extends MultiPageEditorPart implements IResourceChangeListener{
-
- public final static String ID_SMOOKS_EDITOR = "org.jboss.tools.smooks.ui.editors.SmooksMultiPageEditor";
-
- /** The text editor used in page 0. */
- private TextEditor editor;
-
- /** The font chosen in page 1. */
- private Font font;
-
- /** The text widget used in page 2. */
- private StyledText text;
- /**
- * Creates a multi-page editor example.
- */
- public SmooksMultiPageEditor() {
- super();
- ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
- }
- /**
- * Creates page 0 of the multi-page editor,
- * which contains a text editor.
- */
- void createPage0() {
- try {
- editor = new TextEditor();
- int index = addPage(editor, getEditorInput());
- setPageText(index, editor.getTitle());
- } catch (PartInitException e) {
- ErrorDialog.openError(
- getSite().getShell(),
- "Error creating nested text editor",
- null,
- e.getStatus());
- }
- }
- /**
- * Creates page 1 of the multi-page editor,
- * which allows you to change the font used in page 2.
- */
- void createPage1() {
-
- Composite composite = new Composite(getContainer(), SWT.NONE);
- GridLayout layout = new GridLayout();
- composite.setLayout(layout);
- layout.numColumns = 2;
-
- Button fontButton = new Button(composite, SWT.NONE);
- GridData gd = new GridData(GridData.BEGINNING);
- gd.horizontalSpan = 2;
- fontButton.setLayoutData(gd);
- fontButton.setText("Change Font...");
-
- fontButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- setFont();
- }
- });
-
- int index = addPage(composite);
- setPageText(index, "Properties");
- }
- /**
- * Creates page 2 of the multi-page editor,
- * which shows the sorted text.
- */
- void createPage2() {
- Composite composite = new Composite(getContainer(), SWT.NONE);
- FillLayout layout = new FillLayout();
- composite.setLayout(layout);
- text = new StyledText(composite, SWT.H_SCROLL | SWT.V_SCROLL);
- text.setEditable(false);
-
- int index = addPage(composite);
- setPageText(index, "Preview");
- }
- /**
- * Creates the pages of the multi-page editor.
- */
- protected void createPages() {
- createPage0();
- createPage1();
- createPage2();
- }
- /**
- * The <code>MultiPageEditorPart</code> implementation of this
- * <code>IWorkbenchPart</code> method disposes all nested editors.
- * Subclasses may extend.
- */
- public void dispose() {
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
- super.dispose();
- }
- /**
- * Saves the multi-page editor's document.
- */
- public void doSave(IProgressMonitor monitor) {
- getEditor(0).doSave(monitor);
- }
- /**
- * Saves the multi-page editor's document as another file.
- * Also updates the text for page 0's tab, and updates this multi-page editor's input
- * to correspond to the nested editor's.
- */
- public void doSaveAs() {
- IEditorPart editor = getEditor(0);
- editor.doSaveAs();
- setPageText(0, editor.getTitle());
- setInput(editor.getEditorInput());
- }
- /* (non-Javadoc)
- * Method declared on IEditorPart
- */
- public void gotoMarker(IMarker marker) {
- setActivePage(0);
- IDE.gotoMarker(getEditor(0), marker);
- }
- /**
- * The <code>MultiPageEditorExample</code> implementation of this method
- * checks that the input is an instance of <code>IFileEditorInput</code>.
- */
- public void init(IEditorSite site, IEditorInput editorInput)
- throws PartInitException {
- if (!(editorInput instanceof IFileEditorInput))
- throw new PartInitException("Invalid Input: Must be IFileEditorInput");
- super.init(site, editorInput);
- }
- /* (non-Javadoc)
- * Method declared on IEditorPart.
- */
- public boolean isSaveAsAllowed() {
- return true;
- }
- /**
- * Calculates the contents of page 2 when the it is activated.
- */
- protected void pageChange(int newPageIndex) {
- super.pageChange(newPageIndex);
- if (newPageIndex == 2) {
- sortWords();
- }
- }
- /**
- * Closes all project files on project close.
- */
- public void resourceChanged(final IResourceChangeEvent event){
- if(event.getType() == IResourceChangeEvent.PRE_CLOSE){
- Display.getDefault().asyncExec(new Runnable(){
- public void run(){
- IWorkbenchPage[] pages = getSite().getWorkbenchWindow().getPages();
- for (int i = 0; i<pages.length; i++){
- if(((FileEditorInput)editor.getEditorInput()).getFile().getProject().equals(event.getResource())){
- IEditorPart editorPart = pages[i].findEditor(editor.getEditorInput());
- pages[i].closeEditor(editorPart,true);
- }
- }
- }
- });
- }
- }
- /**
- * Sets the font related data to be applied to the text in page 2.
- */
- void setFont() {
- FontDialog fontDialog = new FontDialog(getSite().getShell());
- fontDialog.setFontList(text.getFont().getFontData());
- FontData fontData = fontDialog.open();
- if (fontData != null) {
- if (font != null)
- font.dispose();
- font = new Font(text.getDisplay(), fontData);
- text.setFont(font);
- }
- }
- /**
- * Sorts the words in page 0, and shows them in page 2.
- */
- void sortWords() {
-
- String editorText =
- editor.getDocumentProvider().getDocument(editor.getEditorInput()).get();
-
- StringTokenizer tokenizer =
- new StringTokenizer(editorText, " \t\n\r\f!@#\u0024%^&*()-_=+`~[]{};:'\",.<>/?|\\");
- ArrayList editorWords = new ArrayList();
- while (tokenizer.hasMoreTokens()) {
- editorWords.add(tokenizer.nextToken());
- }
-
- Collections.sort(editorWords, Collator.getInstance());
- StringWriter displayText = new StringWriter();
- for (int i = 0; i < editorWords.size(); i++) {
- displayText.write(((String) editorWords.get(i)));
- displayText.write(System.getProperty("line.separator"));
- }
- text.setText(displayText.toString());
- }
-}
Deleted: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java 2008-10-26 13:32:55 UTC (rev 11187)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java 2008-10-26 13:35:53 UTC (rev 11188)
@@ -1,103 +0,0 @@
-package org.jboss.tools.smooks.ui.editors;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-
-/**
- * Manages the installation/deinstallation of global actions for multi-page editors.
- * Responsible for the redirection of global actions to the active editor.
- * Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
- */
-public class SmooksMultiPageEditorContributor extends MultiPageEditorActionBarContributor {
- private IEditorPart activeEditorPart;
- private Action sampleAction;
- /**
- * Creates a multi-page contributor.
- */
- public SmooksMultiPageEditorContributor() {
- super();
- createActions();
- }
- /**
- * Returns the action registed with the given text editor.
- * @return IAction or null if editor is null.
- */
- protected IAction getAction(ITextEditor editor, String actionID) {
- return (editor == null ? null : editor.getAction(actionID));
- }
- /* (non-JavaDoc)
- * Method declared in AbstractMultiPageEditorActionBarContributor.
- */
-
- public void setActivePage(IEditorPart part) {
- if (activeEditorPart == part)
- return;
-
- activeEditorPart = part;
-
- IActionBars actionBars = getActionBars();
- if (actionBars != null) {
-
- ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part : null;
-
- actionBars.setGlobalActionHandler(
- ActionFactory.DELETE.getId(),
- getAction(editor, ITextEditorActionConstants.DELETE));
- actionBars.setGlobalActionHandler(
- ActionFactory.UNDO.getId(),
- getAction(editor, ITextEditorActionConstants.UNDO));
- actionBars.setGlobalActionHandler(
- ActionFactory.REDO.getId(),
- getAction(editor, ITextEditorActionConstants.REDO));
- actionBars.setGlobalActionHandler(
- ActionFactory.CUT.getId(),
- getAction(editor, ITextEditorActionConstants.CUT));
- actionBars.setGlobalActionHandler(
- ActionFactory.COPY.getId(),
- getAction(editor, ITextEditorActionConstants.COPY));
- actionBars.setGlobalActionHandler(
- ActionFactory.PASTE.getId(),
- getAction(editor, ITextEditorActionConstants.PASTE));
- actionBars.setGlobalActionHandler(
- ActionFactory.SELECT_ALL.getId(),
- getAction(editor, ITextEditorActionConstants.SELECT_ALL));
- actionBars.setGlobalActionHandler(
- ActionFactory.FIND.getId(),
- getAction(editor, ITextEditorActionConstants.FIND));
- actionBars.setGlobalActionHandler(
- IDEActionFactory.BOOKMARK.getId(),
- getAction(editor, IDEActionFactory.BOOKMARK.getId()));
- actionBars.updateActionBars();
- }
- }
- private void createActions() {
- sampleAction = new Action() {
- public void run() {
- MessageDialog.openInformation(null, "Ui Plug-in", "Sample Action Executed");
- }
- };
- sampleAction.setText("Sample Action");
- sampleAction.setToolTipText("Sample Action tool tip");
- sampleAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
- getImageDescriptor(IDE.SharedImages.IMG_OBJS_TASK_TSK));
- }
- public void contributeToMenu(IMenuManager manager) {
- IMenuManager menu = new MenuManager("Editor &Menu");
- manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
- menu.add(sampleAction);
- }
- public void contributeToToolBar(IToolBarManager manager) {
- manager.add(new Separator());
- manager.add(sampleAction);
- }
-}
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-26 13:32:55 UTC (rev 11187)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-26 13:35:53 UTC (rev 11188)
@@ -47,7 +47,7 @@
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType, Object sourceObject,
Object targetObject) {
- return null;
+ throw new RuntimeException("The Smooks editor doesn't support to parse the XML2XML config file currently.The feature is coming soon...");
}
public DesignTimeAnalyzeResult[] analyzeGraphModel(
17 years, 5 months
JBoss Tools SVN: r11187 - in trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks: ui and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2008-10-26 09:32:55 -0400 (Sun, 26 Oct 2008)
New Revision: 11187
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
Removed:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
Log:
JBIDE-2988
add text edtior to show config file contents when the smooks tools can't parse the file or doesn't support transform data type.
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-26 11:43:48 UTC (rev 11186)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-26 13:32:55 UTC (rev 11187)
@@ -156,8 +156,7 @@
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType, Object sourceObject,
Object targetObject) {
- // TODO Auto-generated method stub
- return null;
+ throw new RuntimeException("The Smooks editor doesn't support to parse the Java2XML config file currently.The feature is coming soon..");
}
protected String getTheJavaBeanString(JavaBeanModel currentModel) {
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java 2008-10-26 13:32:55 UTC (rev 11187)
@@ -0,0 +1,70 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.editors.text.TextEditor;
+import org.jboss.tools.smooks.utils.SmooksGraphConstants;
+
+/**
+ * @author Dart
+ *
+ */
+public class SmooksTextEdtor extends TextEditor {
+
+ private Throwable error;
+
+ public SmooksTextEdtor(Throwable error) {
+ super();
+ Assert.isNotNull(error);
+ this.error = error;
+ while(error != null && error instanceof InvocationTargetException){
+ error = ((InvocationTargetException)error).getTargetException();
+ }
+ }
+
+ public void createPartControl(Composite parent) {
+ GridLayout gridLayout = new GridLayout();
+ parent.setLayout(gridLayout);
+ Composite errorComposite = new Composite(parent, SWT.BORDER);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ errorComposite.setLayoutData(gd);
+
+ Label noticeLabel = new Label(errorComposite, SWT.NONE);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ noticeLabel.setLayoutData(gd);
+ noticeLabel
+ .setText("Because there occurs some error during parse/load the Smooks configuration file , the graphical editor can't be opened.Error : ");
+
+ GridLayout gl = new GridLayout();
+ gl.numColumns = 2;
+ errorComposite.setLayout(gl);
+
+ gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
+ Label imagelabel = new Label(errorComposite, SWT.NONE);
+ imagelabel.setLayoutData(gd);
+ imagelabel.setImage(SmooksUIActivator.getDefault().getImageRegistry()
+ .get(SmooksGraphConstants.IMAGE_ERROR));
+
+ Label messageLabel = new Label(errorComposite, SWT.NONE);
+ messageLabel.setText(error.getLocalizedMessage());
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ messageLabel.setLayoutData(gd);
+
+ Composite textComposite = new Composite(parent, SWT.NONE);
+ gd = new GridData(GridData.FILL_BOTH);
+ textComposite.setLayoutData(gd);
+ textComposite.setLayout(new FillLayout());
+ super.createPartControl(textComposite);
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/SmooksTextEdtor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2008-10-26 11:43:48 UTC (rev 11186)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksFormEditor.java 2008-10-26 13:32:55 UTC (rev 11187)
@@ -24,10 +24,12 @@
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
@@ -39,6 +41,7 @@
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.provider.SmooksItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.util.SmooksResourceFactoryImpl;
+import org.jboss.tools.smooks.ui.SmooksTextEdtor;
import org.jboss.tools.smooks.utils.UIUtils;
/**
@@ -47,7 +50,7 @@
*/
public class SmooksFormEditor extends FormEditor implements
ITabbedPropertySheetPageContributor {
-
+
SmooksGraphicalFormPage graphicalPage = null;
private TabbedPropertySheetPage tabbedPropertySheetPage;
private SmooksNormalContentEditFormPage normalPage;
@@ -56,7 +59,11 @@
private AdapterFactoryEditingDomain editingDomain;
private Resource smooksResource;
+ private SmooksTextEdtor textEdtior = null;
+
private boolean forceDirty = false;
+ private boolean onlyShowTextEditor = false;
+ private Throwable showTextEditorReason = null;
public SmooksFormEditor() {
super();
@@ -81,6 +88,7 @@
@Override
protected void addPages() {
+
try {
graphicalPage = new SmooksGraphicalFormPage(this, "graph",
"Mapping");
@@ -92,22 +100,49 @@
setPageText(index, "Normal");
// Set a default NormalPacakge to Normal Page
this.refreshNormalPage(Collections.EMPTY_LIST);
+ if (onlyShowTextEditor) {
+ removeGraphicalFormPage();
+ }
} catch (Exception e) {
UIUtils.showErrorDialog(getSite().getShell(), UIUtils
.createErrorStatus(e));
}
}
+ public void setOnlyShowTextEditor(boolean onlyShowTextEditor,
+ Throwable reason) {
+ this.onlyShowTextEditor = onlyShowTextEditor;
+ this.showTextEditorReason = reason;
+ }
+
+ public void removeGraphicalFormPage() {
+ int count = this.getPageCount();
+ try {
+ if (textEdtior == null) {
+ textEdtior = new SmooksTextEdtor(showTextEditorReason);
+ this.addPage(textEdtior, getEditorInput());
+ for (int i = 0; i < count; i++) {
+ this.removePage(0);
+ }
+ }
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+
/*
* (non-Javadoc)
*
- * @see org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite,
- * org.eclipse.ui.IEditorInput)
+ * @see
+ * org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite,
+ * org.eclipse.ui.IEditorInput)
*/
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
super.init(site, input);
+ onlyShowTextEditor = false;
+ Throwable parsingException = null;
IFile file = ((IFileEditorInput) input).getFile();
String path = file.getLocation().toOSString();
if (this.getEditingDomain() != null && smooksResource == null) {
@@ -117,29 +152,39 @@
try {
smooksResource.load(Collections.EMPTY_MAP);
} catch (IOException e) {
- e.printStackTrace();
+ parsingException = e;
}
}
+
+ if (parsingException != null) {
+ onlyShowTextEditor = true;
+ showTextEditorReason = parsingException;
+ return;
+ }
+
DocumentRoot documentRoot = null;
- if(smooksResource.getContents().isEmpty()){
+ if (smooksResource.getContents().isEmpty()) {
documentRoot = SmooksFactory.eINSTANCE.createDocumentRoot();
smooksResource.getContents().add(documentRoot);
- }else{
- documentRoot = (DocumentRoot) smooksResource.getContents().get(0);
+ } else {
+ documentRoot = (DocumentRoot) smooksResource.getContents().get(
+ 0);
}
-
- SmooksResourceListType resourceList = documentRoot.getSmooksResourceList();
- if(resourceList == null){
- resourceList = SmooksFactory.eINSTANCE.createSmooksResourceListType();
+
+ SmooksResourceListType resourceList = documentRoot
+ .getSmooksResourceList();
+ if (resourceList == null) {
+ resourceList = SmooksFactory.eINSTANCE
+ .createSmooksResourceListType();
documentRoot.setSmooksResourceList(resourceList);
}
-
+
}
}
public void refreshNormalPage(List resourceHidenConfigs) {
NormalSmooksModelPackage modelPackage = createSmooksModelPackage();
- if (modelPackage != null){
+ if (modelPackage != null) {
modelPackage.setHidenSmooksElements(resourceHidenConfigs);
}
if (this.normalPage != null) {
@@ -161,6 +206,13 @@
@Override
public void doSave(IProgressMonitor monitor) {
+ if(onlyShowTextEditor){
+ if(textEdtior != null){
+ textEdtior.doSave(monitor);
+ fireEditorDirty(false);
+ return;
+ }
+ }
graphicalPage.doSave(monitor);
fireEditorDirty(false);
}
@@ -172,8 +224,11 @@
@Override
public void doSaveAs() {
- // TODO Auto-generated method stub
-
+ if(onlyShowTextEditor){
+ if(textEdtior != null){
+ textEdtior.doSaveAs();
+ }
+ }
}
@Override
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 11:43:48 UTC (rev 11186)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 13:32:55 UTC (rev 11187)
@@ -253,21 +253,6 @@
@Override
protected void createFormContent(IManagedForm managedForm) {
- try {
- this.initTransformViewerModel((IEditorSite) getSite(),
- getEditorInput());
- if (mappingResourceConfigList != null)
- callParentRefillNormalModelInfor(mappingResourceConfigList
- .getRelationgResourceConfigList());
- } catch (IOWrappedException ex) {
- MessageDialog.openWarning(getSite().getShell(), "Waring",
- "Exceptions occurd during parsing Smooks file, no worries");
- } catch (Throwable e) {
- Status status = UIUtils.createErrorStatus(e);
- ErrorDialog.openError(getSite().getShell(), "Error", "error",
- status);
- }
-
final ScrolledForm form = managedForm.getForm();
FormToolkit toolkit = managedForm.getToolkit();
@@ -927,7 +912,6 @@
.getSmooksConfigurationFileGenerateContext());
} catch (Throwable t) {
// ignore
- t.printStackTrace();
}
IFile file = ((IFileEditorInput) input).getFile();
if (sourceDataTypeID == null || targetDataTypeID == null) {
@@ -1000,8 +984,22 @@
this.targetTreeViewerInputModel = ((SmooksFileEditorInput) input)
.getTargetTreeViewerInputContents();
}
-
- // }
+ Throwable throwable = null;
+ try {
+ this.initTransformViewerModel((IEditorSite) getSite(),
+ getEditorInput());
+ if (mappingResourceConfigList != null)
+ callParentRefillNormalModelInfor(mappingResourceConfigList
+ .getRelationgResourceConfigList());
+ } catch (IOWrappedException ex) {
+ MessageDialog.openWarning(getSite().getShell(), "Waring",
+ "Exceptions occurd during parsing Smooks file, no worries");
+ } catch (Throwable e) {
+ throwable = e;
+ }
+ if (throwable != null) {
+ ((SmooksFormEditor) getEditor()).setOnlyShowTextEditor(true,throwable);
+ }
}
protected void initFormEditorWithGraphInfo(GraphInformations graph) {
@@ -1342,7 +1340,8 @@
}
updateNotifyMessage();
} catch (CoreException e) {
- UIUtils.showErrorDialog(getSite().getShell(), UIUtils.createErrorStatus(e));
+ UIUtils.showErrorDialog(getSite().getShell(), UIUtils
+ .createErrorStatus(e));
}
}
Deleted: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java 2008-10-26 11:43:48 UTC (rev 11186)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditor.java 2008-10-26 13:32:55 UTC (rev 11187)
@@ -1,241 +0,0 @@
-package org.jboss.tools.smooks.ui.editors;
-
-
-import java.io.StringWriter;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FontDialog;
-import org.eclipse.ui.*;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * An example showing how to create a multi-page editor.
- * This example has 3 pages:
- * <ul>
- * <li>page 0 contains a nested text editor.
- * <li>page 1 allows you to change the font used in page 2
- * <li>page 2 shows the words in page 0 in sorted order
- * </ul>
- */
-public class SmooksMultiPageEditor extends MultiPageEditorPart implements IResourceChangeListener{
-
- public final static String ID_SMOOKS_EDITOR = "org.jboss.tools.smooks.ui.editors.SmooksMultiPageEditor";
-
- /** The text editor used in page 0. */
- private TextEditor editor;
-
- /** The font chosen in page 1. */
- private Font font;
-
- /** The text widget used in page 2. */
- private StyledText text;
- /**
- * Creates a multi-page editor example.
- */
- public SmooksMultiPageEditor() {
- super();
- ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
- }
- /**
- * Creates page 0 of the multi-page editor,
- * which contains a text editor.
- */
- void createPage0() {
- try {
- editor = new TextEditor();
- int index = addPage(editor, getEditorInput());
- setPageText(index, editor.getTitle());
- } catch (PartInitException e) {
- ErrorDialog.openError(
- getSite().getShell(),
- "Error creating nested text editor",
- null,
- e.getStatus());
- }
- }
- /**
- * Creates page 1 of the multi-page editor,
- * which allows you to change the font used in page 2.
- */
- void createPage1() {
-
- Composite composite = new Composite(getContainer(), SWT.NONE);
- GridLayout layout = new GridLayout();
- composite.setLayout(layout);
- layout.numColumns = 2;
-
- Button fontButton = new Button(composite, SWT.NONE);
- GridData gd = new GridData(GridData.BEGINNING);
- gd.horizontalSpan = 2;
- fontButton.setLayoutData(gd);
- fontButton.setText("Change Font...");
-
- fontButton.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- setFont();
- }
- });
-
- int index = addPage(composite);
- setPageText(index, "Properties");
- }
- /**
- * Creates page 2 of the multi-page editor,
- * which shows the sorted text.
- */
- void createPage2() {
- Composite composite = new Composite(getContainer(), SWT.NONE);
- FillLayout layout = new FillLayout();
- composite.setLayout(layout);
- text = new StyledText(composite, SWT.H_SCROLL | SWT.V_SCROLL);
- text.setEditable(false);
-
- int index = addPage(composite);
- setPageText(index, "Preview");
- }
- /**
- * Creates the pages of the multi-page editor.
- */
- protected void createPages() {
- createPage0();
- createPage1();
- createPage2();
- }
- /**
- * The <code>MultiPageEditorPart</code> implementation of this
- * <code>IWorkbenchPart</code> method disposes all nested editors.
- * Subclasses may extend.
- */
- public void dispose() {
- ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
- super.dispose();
- }
- /**
- * Saves the multi-page editor's document.
- */
- public void doSave(IProgressMonitor monitor) {
- getEditor(0).doSave(monitor);
- }
- /**
- * Saves the multi-page editor's document as another file.
- * Also updates the text for page 0's tab, and updates this multi-page editor's input
- * to correspond to the nested editor's.
- */
- public void doSaveAs() {
- IEditorPart editor = getEditor(0);
- editor.doSaveAs();
- setPageText(0, editor.getTitle());
- setInput(editor.getEditorInput());
- }
- /* (non-Javadoc)
- * Method declared on IEditorPart
- */
- public void gotoMarker(IMarker marker) {
- setActivePage(0);
- IDE.gotoMarker(getEditor(0), marker);
- }
- /**
- * The <code>MultiPageEditorExample</code> implementation of this method
- * checks that the input is an instance of <code>IFileEditorInput</code>.
- */
- public void init(IEditorSite site, IEditorInput editorInput)
- throws PartInitException {
- if (!(editorInput instanceof IFileEditorInput))
- throw new PartInitException("Invalid Input: Must be IFileEditorInput");
- super.init(site, editorInput);
- }
- /* (non-Javadoc)
- * Method declared on IEditorPart.
- */
- public boolean isSaveAsAllowed() {
- return true;
- }
- /**
- * Calculates the contents of page 2 when the it is activated.
- */
- protected void pageChange(int newPageIndex) {
- super.pageChange(newPageIndex);
- if (newPageIndex == 2) {
- sortWords();
- }
- }
- /**
- * Closes all project files on project close.
- */
- public void resourceChanged(final IResourceChangeEvent event){
- if(event.getType() == IResourceChangeEvent.PRE_CLOSE){
- Display.getDefault().asyncExec(new Runnable(){
- public void run(){
- IWorkbenchPage[] pages = getSite().getWorkbenchWindow().getPages();
- for (int i = 0; i<pages.length; i++){
- if(((FileEditorInput)editor.getEditorInput()).getFile().getProject().equals(event.getResource())){
- IEditorPart editorPart = pages[i].findEditor(editor.getEditorInput());
- pages[i].closeEditor(editorPart,true);
- }
- }
- }
- });
- }
- }
- /**
- * Sets the font related data to be applied to the text in page 2.
- */
- void setFont() {
- FontDialog fontDialog = new FontDialog(getSite().getShell());
- fontDialog.setFontList(text.getFont().getFontData());
- FontData fontData = fontDialog.open();
- if (fontData != null) {
- if (font != null)
- font.dispose();
- font = new Font(text.getDisplay(), fontData);
- text.setFont(font);
- }
- }
- /**
- * Sorts the words in page 0, and shows them in page 2.
- */
- void sortWords() {
-
- String editorText =
- editor.getDocumentProvider().getDocument(editor.getEditorInput()).get();
-
- StringTokenizer tokenizer =
- new StringTokenizer(editorText, " \t\n\r\f!@#\u0024%^&*()-_=+`~[]{};:'\",.<>/?|\\");
- ArrayList editorWords = new ArrayList();
- while (tokenizer.hasMoreTokens()) {
- editorWords.add(tokenizer.nextToken());
- }
-
- Collections.sort(editorWords, Collator.getInstance());
- StringWriter displayText = new StringWriter();
- for (int i = 0; i < editorWords.size(); i++) {
- displayText.write(((String) editorWords.get(i)));
- displayText.write(System.getProperty("line.separator"));
- }
- text.setText(displayText.toString());
- }
-}
Deleted: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java 2008-10-26 11:43:48 UTC (rev 11186)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksMultiPageEditorContributor.java 2008-10-26 13:32:55 UTC (rev 11187)
@@ -1,103 +0,0 @@
-package org.jboss.tools.smooks.ui.editors;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-
-/**
- * Manages the installation/deinstallation of global actions for multi-page editors.
- * Responsible for the redirection of global actions to the active editor.
- * Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
- */
-public class SmooksMultiPageEditorContributor extends MultiPageEditorActionBarContributor {
- private IEditorPart activeEditorPart;
- private Action sampleAction;
- /**
- * Creates a multi-page contributor.
- */
- public SmooksMultiPageEditorContributor() {
- super();
- createActions();
- }
- /**
- * Returns the action registed with the given text editor.
- * @return IAction or null if editor is null.
- */
- protected IAction getAction(ITextEditor editor, String actionID) {
- return (editor == null ? null : editor.getAction(actionID));
- }
- /* (non-JavaDoc)
- * Method declared in AbstractMultiPageEditorActionBarContributor.
- */
-
- public void setActivePage(IEditorPart part) {
- if (activeEditorPart == part)
- return;
-
- activeEditorPart = part;
-
- IActionBars actionBars = getActionBars();
- if (actionBars != null) {
-
- ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part : null;
-
- actionBars.setGlobalActionHandler(
- ActionFactory.DELETE.getId(),
- getAction(editor, ITextEditorActionConstants.DELETE));
- actionBars.setGlobalActionHandler(
- ActionFactory.UNDO.getId(),
- getAction(editor, ITextEditorActionConstants.UNDO));
- actionBars.setGlobalActionHandler(
- ActionFactory.REDO.getId(),
- getAction(editor, ITextEditorActionConstants.REDO));
- actionBars.setGlobalActionHandler(
- ActionFactory.CUT.getId(),
- getAction(editor, ITextEditorActionConstants.CUT));
- actionBars.setGlobalActionHandler(
- ActionFactory.COPY.getId(),
- getAction(editor, ITextEditorActionConstants.COPY));
- actionBars.setGlobalActionHandler(
- ActionFactory.PASTE.getId(),
- getAction(editor, ITextEditorActionConstants.PASTE));
- actionBars.setGlobalActionHandler(
- ActionFactory.SELECT_ALL.getId(),
- getAction(editor, ITextEditorActionConstants.SELECT_ALL));
- actionBars.setGlobalActionHandler(
- ActionFactory.FIND.getId(),
- getAction(editor, ITextEditorActionConstants.FIND));
- actionBars.setGlobalActionHandler(
- IDEActionFactory.BOOKMARK.getId(),
- getAction(editor, IDEActionFactory.BOOKMARK.getId()));
- actionBars.updateActionBars();
- }
- }
- private void createActions() {
- sampleAction = new Action() {
- public void run() {
- MessageDialog.openInformation(null, "Ui Plug-in", "Sample Action Executed");
- }
- };
- sampleAction.setText("Sample Action");
- sampleAction.setToolTipText("Sample Action tool tip");
- sampleAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
- getImageDescriptor(IDE.SharedImages.IMG_OBJS_TASK_TSK));
- }
- public void contributeToMenu(IMenuManager manager) {
- IMenuManager menu = new MenuManager("Editor &Menu");
- manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
- menu.add(sampleAction);
- }
- public void contributeToToolBar(IToolBarManager manager) {
- manager.add(new Separator());
- manager.add(sampleAction);
- }
-}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-26 11:43:48 UTC (rev 11186)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-26 13:32:55 UTC (rev 11187)
@@ -47,7 +47,7 @@
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType, Object sourceObject,
Object targetObject) {
- return null;
+ throw new RuntimeException("The Smooks editor doesn't support to parse the XML2XML config file currently.The feature is coming soon...");
}
public DesignTimeAnalyzeResult[] analyzeGraphModel(
17 years, 5 months
JBoss Tools SVN: r11186 - in trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks: javabean/analyzer and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2008-10-26 07:43:48 -0400 (Sun, 26 Oct 2008)
New Revision: 11186
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
Log:
JBIDE-2867
add menu for error label
if user right-click the error label , menu will show how to resolve this error , and user select the menu-item , the editor will execute the resolve command
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java 2008-10-26 11:43:48 UTC (rev 11186)
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.analyzer;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public class CompositeResolveCommand extends ResolveCommand {
+
+ private List<ResolveCommand> commandList = new ArrayList<ResolveCommand>();
+
+ public CompositeResolveCommand(
+ SmooksConfigurationFileGenerateContext context) {
+ super(context);
+ }
+
+
+ public void addCommand(ResolveCommand command){
+ commandList.add(command);
+ }
+
+ public void removeCommand(ResolveCommand command){
+ commandList.remove(command);
+ }
+
+ public boolean isEmpty(){
+ if(commandList == null) return true;
+ return commandList.isEmpty();
+ }
+
+ @Override
+ public void execute() throws Exception {
+ if(commandList == null) return;
+ for (Iterator<ResolveCommand> iterator = commandList.iterator(); iterator.hasNext();) {
+ ResolveCommand command = (ResolveCommand) iterator.next();
+ command.execute();
+ }
+ }
+
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java 2008-10-26 11:33:25 UTC (rev 11185)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java 2008-10-26 11:43:48 UTC (rev 11186)
@@ -3,8 +3,14 @@
*/
package org.jboss.tools.smooks.javabean.analyzer;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
import org.jboss.tools.smooks.analyzer.ResolveCommand;
-import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
+import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
/**
@@ -13,25 +19,29 @@
*/
public class Java2JavaResolveCommand extends ResolveCommand {
- private JavaBeanModel sourceModel;
+ private AbstractStructuredDataModel sourceModel;
- private JavaBeanModel targetModel;
+ private AbstractStructuredDataModel targetModel;
+ private List<LineConnectionModel> disconnectionModel = new ArrayList<LineConnectionModel>();
-
- public JavaBeanModel getSourceModel() {
+ public void addDisconnectionModel(LineConnectionModel line){
+ disconnectionModel.add(line);
+ }
+
+ public AbstractStructuredDataModel getSourceModel() {
return sourceModel;
}
- public void setSourceModel(JavaBeanModel sourceModel) {
+ public void setSourceModel(AbstractStructuredDataModel sourceModel) {
this.sourceModel = sourceModel;
}
- public JavaBeanModel getTargetModel() {
+ public AbstractStructuredDataModel getTargetModel() {
return targetModel;
}
- public void setTargetModel(JavaBeanModel targetModel) {
+ public void setTargetModel(AbstractStructuredDataModel targetModel) {
this.targetModel = targetModel;
}
@@ -42,9 +52,23 @@
@Override
public void execute() throws Exception {
-
SmooksConfigurationFileGenerateContext context = getContext();
if(context == null) throw new RuntimeException("Smooks generated context is NULL");
-
+ if(sourceModel != null && targetModel != null){
+ LineConnectionModel connectionModel = new LineConnectionModel();
+ connectionModel
+ .setSource((IConnectableModel) sourceModel);
+ connectionModel
+ .setTarget((IConnectableModel) targetModel);
+ connectionModel.connect();
+ return;
+ }
+ if(!disconnectionModel.isEmpty()){
+ for (Iterator<LineConnectionModel> iterator = disconnectionModel.iterator(); iterator.hasNext();) {
+ LineConnectionModel connection = (LineConnectionModel) iterator.next();
+ connection.disConnect();
+ }
+ return;
+ }
}
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-10-26 11:33:25 UTC (rev 11185)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-10-26 11:43:48 UTC (rev 11186)
@@ -33,13 +33,13 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.smooks.analyzer.CompositeResolveCommand;
import org.jboss.tools.smooks.analyzer.DesignTimeAnalyzeResult;
import org.jboss.tools.smooks.analyzer.IMappingAnalyzer;
import org.jboss.tools.smooks.analyzer.ISourceModelAnalyzer;
import org.jboss.tools.smooks.analyzer.ITargetModelAnalyzer;
import org.jboss.tools.smooks.analyzer.MappingModel;
import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
-import org.jboss.tools.smooks.analyzer.ResolveCommand;
import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
import org.jboss.tools.smooks.graphical.GraphInformations;
import org.jboss.tools.smooks.graphical.Param;
@@ -392,14 +392,13 @@
if (((IConnectableModel) pgm)
.getModelTargetConnections().isEmpty()) {
String errorMessage = "The parent of Java node \""
- + javaModel.getName()
- + "\" : \""
- + parent.getName()
- + "\" doesn't be connected by any source node";
+ + javaModel.getName()
+ + "\" : \""
+ + parent.getName()
+ + "\" doesn't be connected by any source node";
DesignTimeAnalyzeResult dr = new DesignTimeAnalyzeResult();
dr.setErrorMessage(errorMessage);
- Java2JavaResolveCommand command = new Java2JavaResolveCommand(context);
-// command.setResolveDescription(resolveDescription);
+ createResolveCommand(dr, context, javaModel, parent);
arList.add(dr);
}
}
@@ -409,6 +408,63 @@
return arList.toArray(new DesignTimeAnalyzeResult[0]);
}
+ private void createResolveCommand(DesignTimeAnalyzeResult result,
+ SmooksConfigurationFileGenerateContext context,
+ JavaBeanModel currentNode, JavaBeanModel parentNode) {
+ GraphRootModel root = context.getGraphicalRootModel();
+ HashMap<AbstractStructuredDataModel, AbstractStructuredDataModel> tempMap = new HashMap<AbstractStructuredDataModel, AbstractStructuredDataModel>();
+ // Disconnect all connections command
+ Java2JavaResolveCommand disconnectCommand = new Java2JavaResolveCommand(
+ context);
+ CompositeResolveCommand compositeCommand = new CompositeResolveCommand(
+ context);
+ compositeCommand.setResolveDescription("Connect all needed connections");
+ disconnectCommand
+ .setResolveDescription("Disconnect all connections of the current \""
+ + currentNode.getName() + "\"node");
+ AbstractStructuredDataModel targetNode = UIUtils.findGraphModel(root,
+ currentNode);
+ if (targetNode instanceof IConnectableModel) {
+ List<Object> connections = ((IConnectableModel) targetNode)
+ .getModelTargetConnections();
+ for (Iterator iterator = connections.iterator(); iterator.hasNext();) {
+ LineConnectionModel line = (LineConnectionModel) iterator
+ .next();
+ AbstractStructuredDataModel source = (AbstractStructuredDataModel) line
+ .getSource();
+ JavaBeanModel sourceBean = (JavaBeanModel) source
+ .getReferenceEntityModel();
+ JavaBeanModel sourceParent = sourceBean.getParent();
+ if (sourceParent == null) {
+ sourceParent = sourceBean;
+ }
+ AbstractStructuredDataModel sourceParentNode = UIUtils
+ .findGraphModel(root, sourceParent);
+ // Connect the parent command
+ AbstractStructuredDataModel targetParentNode = UIUtils
+ .findGraphModel(root, parentNode);
+ if (tempMap.get(sourceParentNode) == null) {
+ Java2JavaResolveCommand connectParent = new Java2JavaResolveCommand(
+ context);
+ connectParent.setResolveDescription("Connect the \""
+ + sourceParent.getName() + "\" to the \""
+ + parentNode.getName() + "\"");
+ connectParent.setSourceModel(sourceParentNode);
+ connectParent.setTargetModel(targetParentNode);
+ result.addResolveCommand(connectParent);
+ tempMap.put(sourceParentNode,targetParentNode);
+ compositeCommand.addCommand(connectParent);
+ }
+
+ disconnectCommand.addDisconnectionModel(line);
+ }
+ }
+ result.addResolveCommand(disconnectCommand);
+ if (!compositeCommand.isEmpty()) {
+ result.addResolveCommand(compositeCommand);
+ }
+ }
+
/**
* If root node don't connect , it will ask user to connect them .
*
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 11:33:25 UTC (rev 11185)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 11:43:48 UTC (rev 11186)
@@ -123,6 +123,7 @@
import org.jboss.tools.smooks.model.SmooksFactory;
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.util.SmooksModelConstants;
+import org.jboss.tools.smooks.model.util.SmooksModelUtils;
import org.jboss.tools.smooks.ui.IStructuredDataCreationWizard;
import org.jboss.tools.smooks.ui.IViewerInitor;
import org.jboss.tools.smooks.ui.SmooksUIActivator;
@@ -1285,13 +1286,13 @@
SmooksGraphConstants.IMAGE_ERROR));
Label notifyLabel = new Label(designTimeAnalyzeResultRegion,
SWT.NONE);
- Menu menu = new Menu(getSite().getShell(),SWT.POP_UP);
+ Menu menu = new Menu(getSite().getShell(), SWT.POP_UP);
List<ResolveCommand> list = result.getResolveProblem();
for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) {
final ResolveCommand resolveCommand = (ResolveCommand) iterator2
.next();
- MenuItem item = new MenuItem(menu,SWT.NONE);
- item.addSelectionListener(new SelectionListener(){
+ MenuItem item = new MenuItem(menu, SWT.NONE);
+ item.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent arg0) {
widgetSelected(arg0);
@@ -1300,10 +1301,15 @@
public void widgetSelected(SelectionEvent arg0) {
try {
resolveCommand.execute();
+ commandStackChanged = true;
+ analyzeDesignGraph();
+ firePropertyChange(PROP_DIRTY);
} catch (Exception e) {
+ UIUtils.showErrorDialog(getSite().getShell(),
+ UIUtils.createErrorStatus(e));
}
}
-
+
});
item.setText(resolveCommand.getResolveDescription());
item.setImage(resolveCommand.getImage());
@@ -1336,8 +1342,7 @@
}
updateNotifyMessage();
} catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ UIUtils.showErrorDialog(getSite().getShell(), UIUtils.createErrorStatus(e));
}
}
17 years, 5 months
JBoss Tools SVN: r11185 - in branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks: java2xml/analyzer and 4 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2008-10-26 07:33:25 -0400 (Sun, 26 Oct 2008)
New Revision: 11185
Added:
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java
Modified:
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
Log:
JBIDE-2867
Add Menu for the Error label , if user right-click error label , the menu will show the user how to resolve the error.
Added: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java (rev 0)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.analyzer;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public class CompositeResolveCommand extends ResolveCommand {
+
+ private List<ResolveCommand> commandList = new ArrayList<ResolveCommand>();
+
+ public CompositeResolveCommand(
+ SmooksConfigurationFileGenerateContext context) {
+ super(context);
+ }
+
+
+ public void addCommand(ResolveCommand command){
+ commandList.add(command);
+ }
+
+ public void removeCommand(ResolveCommand command){
+ commandList.remove(command);
+ }
+
+ public boolean isEmpty(){
+ if(commandList == null) return true;
+ return commandList.isEmpty();
+ }
+
+ @Override
+ public void execute() throws Exception {
+ if(commandList == null) return;
+ for (Iterator<ResolveCommand> iterator = commandList.iterator(); iterator.hasNext();) {
+ ResolveCommand command = (ResolveCommand) iterator.next();
+ command.execute();
+ }
+ }
+
+
+}
Property changes on: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/CompositeResolveCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java 2008-10-26 11:25:56 UTC (rev 11184)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -3,13 +3,17 @@
*/
package org.jboss.tools.smooks.analyzer;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* @author dart
*
*/
public class DesignTimeAnalyzeResult {
- public String errorMessage;
- public String warningMessage;
+ protected String errorMessage;
+ protected String warningMessage;
+ protected List<ResolveCommand> resolveCommandList = new ArrayList<ResolveCommand>();
public String getErrorMessage() {
return errorMessage;
}
@@ -23,5 +27,17 @@
this.warningMessage = warningMessage;
}
+ public void addResolveCommand(ResolveCommand command){
+ this.resolveCommandList.add(command);
+ }
+ public void removeResolveCommand(ResolveCommand command){
+ this.resolveCommandList.remove(command);
+ }
+
+ public List<ResolveCommand> getResolveProblem(){
+ return resolveCommandList;
+ }
+
+
}
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java 2008-10-26 11:25:56 UTC (rev 11184)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -10,8 +10,6 @@
******************************************************************************/
package org.jboss.tools.smooks.analyzer;
-import java.util.List;
-
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
@@ -20,12 +18,31 @@
*
*/
public interface IMappingAnalyzer {
+ /**
+ * Parse the graphical model and generate the smooks config file model
+ * @param context
+ * @throws SmooksAnalyzerException
+ */
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException;
+
+ /**
+ * Parse the smooks config file model what loaded by EMF , and create the relating graphical model for it.
+ * @param listType
+ * @param sourceObject
+ * @param targetObject
+ * @return
+ */
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType,Object sourceObject,Object targetObject);
+ /**
+ * Analyze the graphical model to find the incorrect logic model and return the analyze result.<p>
+ * The graphical editor will display the analyze result.
+ * @param context
+ * @return
+ */
public DesignTimeAnalyzeResult[] analyzeGraphModel(SmooksConfigurationFileGenerateContext context);
}
Added: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java (rev 0)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.analyzer;
+
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public class ResolveCommand {
+ private SmooksConfigurationFileGenerateContext context;
+
+ private String resolveDescription ;
+
+ private Image image;
+
+ public void setResolveDescription(String resolveDescription) {
+ this.resolveDescription = resolveDescription;
+ }
+
+ public void setImage(Image image) {
+ this.image = image;
+ }
+
+ public ResolveCommand(SmooksConfigurationFileGenerateContext context){
+ this.context = context;
+ }
+
+ public SmooksConfigurationFileGenerateContext getContext() {
+ return context;
+ }
+
+ public void execute() throws Exception{
+
+ }
+
+ public Image getImage(){
+ return image;
+ }
+
+ public String getResolveDescription(){
+ return resolveDescription;
+ }
+
+}
Property changes on: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-26 11:25:56 UTC (rev 11184)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -56,7 +56,6 @@
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
// TODO will modify soon
-
if(true){
Shell shell = context.getShell();
MessageDialog.openWarning(shell, "Warning", "The java2xml can't be generate to config file currently.");
Added: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java (rev 0)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -0,0 +1,74 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.javabean.analyzer;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.jboss.tools.smooks.analyzer.ResolveCommand;
+import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
+import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public class Java2JavaResolveCommand extends ResolveCommand {
+
+ private AbstractStructuredDataModel sourceModel;
+
+ private AbstractStructuredDataModel targetModel;
+
+ private List<LineConnectionModel> disconnectionModel = new ArrayList<LineConnectionModel>();
+
+ public void addDisconnectionModel(LineConnectionModel line){
+ disconnectionModel.add(line);
+ }
+
+ public AbstractStructuredDataModel getSourceModel() {
+ return sourceModel;
+ }
+
+ public void setSourceModel(AbstractStructuredDataModel sourceModel) {
+ this.sourceModel = sourceModel;
+ }
+
+ public AbstractStructuredDataModel getTargetModel() {
+ return targetModel;
+ }
+
+ public void setTargetModel(AbstractStructuredDataModel targetModel) {
+ this.targetModel = targetModel;
+ }
+
+ public Java2JavaResolveCommand(
+ SmooksConfigurationFileGenerateContext context) {
+ super(context);
+ }
+
+ @Override
+ public void execute() throws Exception {
+ SmooksConfigurationFileGenerateContext context = getContext();
+ if(context == null) throw new RuntimeException("Smooks generated context is NULL");
+ if(sourceModel != null && targetModel != null){
+ LineConnectionModel connectionModel = new LineConnectionModel();
+ connectionModel
+ .setSource((IConnectableModel) sourceModel);
+ connectionModel
+ .setTarget((IConnectableModel) targetModel);
+ connectionModel.connect();
+ return;
+ }
+ if(!disconnectionModel.isEmpty()){
+ for (Iterator<LineConnectionModel> iterator = disconnectionModel.iterator(); iterator.hasNext();) {
+ LineConnectionModel connection = (LineConnectionModel) iterator.next();
+ connection.disConnect();
+ }
+ return;
+ }
+ }
+}
Property changes on: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-10-26 11:25:56 UTC (rev 11184)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -33,6 +33,7 @@
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.smooks.analyzer.CompositeResolveCommand;
import org.jboss.tools.smooks.analyzer.DesignTimeAnalyzeResult;
import org.jboss.tools.smooks.analyzer.IMappingAnalyzer;
import org.jboss.tools.smooks.analyzer.ISourceModelAnalyzer;
@@ -391,13 +392,13 @@
if (((IConnectableModel) pgm)
.getModelTargetConnections().isEmpty()) {
String errorMessage = "The parent of Java node \""
- + javaModel.getName()
- + "\" : \""
- + parent.getName()
- + "\" doesn't be connected by any source node";
+ + javaModel.getName()
+ + "\" : \""
+ + parent.getName()
+ + "\" doesn't be connected by any source node";
DesignTimeAnalyzeResult dr = new DesignTimeAnalyzeResult();
dr.setErrorMessage(errorMessage);
-
+ createResolveCommand(dr, context, javaModel, parent);
arList.add(dr);
}
}
@@ -407,6 +408,63 @@
return arList.toArray(new DesignTimeAnalyzeResult[0]);
}
+ private void createResolveCommand(DesignTimeAnalyzeResult result,
+ SmooksConfigurationFileGenerateContext context,
+ JavaBeanModel currentNode, JavaBeanModel parentNode) {
+ GraphRootModel root = context.getGraphicalRootModel();
+ HashMap<AbstractStructuredDataModel, AbstractStructuredDataModel> tempMap = new HashMap<AbstractStructuredDataModel, AbstractStructuredDataModel>();
+ // Disconnect all connections command
+ Java2JavaResolveCommand disconnectCommand = new Java2JavaResolveCommand(
+ context);
+ CompositeResolveCommand compositeCommand = new CompositeResolveCommand(
+ context);
+ compositeCommand.setResolveDescription("Connect all needed connections");
+ disconnectCommand
+ .setResolveDescription("Disconnect all connections of the current \""
+ + currentNode.getName() + "\"node");
+ AbstractStructuredDataModel targetNode = UIUtils.findGraphModel(root,
+ currentNode);
+ if (targetNode instanceof IConnectableModel) {
+ List<Object> connections = ((IConnectableModel) targetNode)
+ .getModelTargetConnections();
+ for (Iterator iterator = connections.iterator(); iterator.hasNext();) {
+ LineConnectionModel line = (LineConnectionModel) iterator
+ .next();
+ AbstractStructuredDataModel source = (AbstractStructuredDataModel) line
+ .getSource();
+ JavaBeanModel sourceBean = (JavaBeanModel) source
+ .getReferenceEntityModel();
+ JavaBeanModel sourceParent = sourceBean.getParent();
+ if (sourceParent == null) {
+ sourceParent = sourceBean;
+ }
+ AbstractStructuredDataModel sourceParentNode = UIUtils
+ .findGraphModel(root, sourceParent);
+ // Connect the parent command
+ AbstractStructuredDataModel targetParentNode = UIUtils
+ .findGraphModel(root, parentNode);
+ if (tempMap.get(sourceParentNode) == null) {
+ Java2JavaResolveCommand connectParent = new Java2JavaResolveCommand(
+ context);
+ connectParent.setResolveDescription("Connect the \""
+ + sourceParent.getName() + "\" to the \""
+ + parentNode.getName() + "\"");
+ connectParent.setSourceModel(sourceParentNode);
+ connectParent.setTargetModel(targetParentNode);
+ result.addResolveCommand(connectParent);
+ tempMap.put(sourceParentNode,targetParentNode);
+ compositeCommand.addCommand(connectParent);
+ }
+
+ disconnectCommand.addDisconnectionModel(line);
+ }
+ }
+ result.addResolveCommand(disconnectCommand);
+ if (!compositeCommand.isEmpty()) {
+ result.addResolveCommand(compositeCommand);
+ }
+ }
+
/**
* If root node don't connect , it will ask user to connect them .
*
Added: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java (rev 0)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -0,0 +1,19 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * @author Dart
+ * @date 2008.10.24
+ */
+public class ProblemLabel extends Label {
+
+ public ProblemLabel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+}
Property changes on: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java (rev 0)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -0,0 +1,140 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseTrackListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
+import org.jboss.tools.smooks.analyzer.ResolveCommand;
+import org.jboss.tools.smooks.ui.SmooksUIActivator;
+import org.jboss.tools.smooks.ui.gef.util.GraphicsConstants;
+import org.jboss.tools.smooks.utils.SmooksGraphConstants;
+import org.jboss.tools.smooks.utils.UIUtils;
+
+/**
+ * @author Dart
+ *
+ */
+public class ResolveCommandPanel extends Composite {
+
+ private static List<Shell> shellList = new ArrayList<Shell>();
+
+ public ResolveCommandPanel(Composite parent, int style) {
+ super(parent, style);
+ // TODO Auto-generated constructor stub
+ }
+
+ public static void open(List<ResolveCommand> list, Shell shell,
+ Point location) {
+ try {
+ closeAll();
+ if (shell == null)
+ return;
+ final Shell newShell = new Shell(shell, SWT.NONE);
+ FillLayout fill = new FillLayout();
+ fill.marginHeight = 0;
+ fill.marginWidth = 0;
+ newShell.setLayout(fill);
+ final ResolveCommandPanel panel = new ResolveCommandPanel(newShell,
+ SWT.NONE);
+ panel.setBackground(ColorConstants.cyan);
+ newShell.addFocusListener(new FocusListener(){
+
+ public void focusGained(FocusEvent arg0) {
+ System.out.println("Gained");
+ }
+
+ public void focusLost(FocusEvent arg0) {
+ if (!newShell.isDisposed()) {
+ newShell.close();
+ }
+ }
+ });
+
+ panel.setBackground(ColorConstants.black);
+ FillLayout layout = new FillLayout();
+ layout.marginHeight = 1;
+ layout.marginWidth = 1;
+ panel.setLayout(layout);
+
+ Composite com = new Composite(panel, SWT.NONE);
+ GridLayout glayout = new GridLayout();
+ com.setLayout(glayout);
+ if (list != null) {
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ final ResolveCommand resolveCommand = (ResolveCommand) iterator
+ .next();
+ ImageHyperlink link = new ImageHyperlink(com, SWT.NONE);
+ link.addHyperlinkListener(new IHyperlinkListener() {
+
+ public void linkActivated(HyperlinkEvent arg0) {
+ try {
+ newShell.close();
+ resolveCommand.execute();
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void linkEntered(HyperlinkEvent arg0) {
+
+ }
+
+ public void linkExited(HyperlinkEvent arg0) {
+
+ }
+
+ });
+ String text = resolveCommand.getResolveDescription();
+ if (text == null)
+ text = "<NULL>";
+ link.setText(text);
+ Image image = resolveCommand.getImage();
+ if (image == null) {
+ image = SmooksUIActivator.getDefault()
+ .getImageRegistry().get(
+ SmooksGraphConstants.IMAGE_EMPTY);
+ }
+ link.setImage(image);
+ }
+ }
+ newShell.setLocation(location);
+ newShell.setSize(new Point(400, 100));
+ shellList.add(newShell);
+
+ newShell.open();
+ newShell.setVisible(false);
+// newShell.setVisible(true);
+ } catch (Throwable e) {
+ UIUtils.showErrorDialog(shell, UIUtils.createErrorStatus(e));
+ }
+ }
+
+ public static void closeAll(){
+ for (Iterator iterator = shellList.iterator(); iterator.hasNext();) {
+ Shell shell = (Shell) iterator.next();
+ if(!shell.isDisposed()) shell.close();
+ }
+
+ shellList.clear();
+ }
+
+}
Property changes on: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 11:25:56 UTC (rev 11184)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -62,15 +62,19 @@
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSourceAdapter;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.TreeListener;
+import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -80,6 +84,9 @@
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.IEditorInput;
@@ -94,7 +101,6 @@
import org.eclipse.ui.forms.events.IHyperlinkListener;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
import org.jboss.tools.smooks.analyzer.AnalyzerFactory;
@@ -104,6 +110,7 @@
import org.jboss.tools.smooks.analyzer.ITargetModelAnalyzer;
import org.jboss.tools.smooks.analyzer.MappingModel;
import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
+import org.jboss.tools.smooks.analyzer.ResolveCommand;
import org.jboss.tools.smooks.analyzer.ResourceConfigEraser;
import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
import org.jboss.tools.smooks.analyzer.SmooksFileBuilder;
@@ -116,11 +123,11 @@
import org.jboss.tools.smooks.model.SmooksFactory;
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.util.SmooksModelConstants;
+import org.jboss.tools.smooks.model.util.SmooksModelUtils;
import org.jboss.tools.smooks.ui.IStructuredDataCreationWizard;
import org.jboss.tools.smooks.ui.IViewerInitor;
import org.jboss.tools.smooks.ui.SmooksUIActivator;
import org.jboss.tools.smooks.ui.StructuredDataCreationWizardDailog;
-import org.jboss.tools.smooks.ui.ViewerInitorStore;
import org.jboss.tools.smooks.ui.gef.editparts.SmooksEditPartFactory;
import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
import org.jboss.tools.smooks.ui.gef.model.GraphRootModel;
@@ -286,7 +293,7 @@
sashForm.setLayoutData(sashFormLd);
sashForm.setSashWidth(1);
-
+
designTimeAnalyzeResultRegion = toolkit.createComposite(sashForm);
GridLayout ngl = new GridLayout();
ngl.numColumns = 2;
@@ -1268,7 +1275,8 @@
DesignTimeAnalyzeResult result = (DesignTimeAnalyzeResult) iterator
.next();
if (result.getErrorMessage() != null) {
- if(canSaveFile) canSaveFile = false;
+ if (canSaveFile)
+ canSaveFile = false;
Label imageLabel = new Label(designTimeAnalyzeResultRegion,
SWT.NONE);
GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
@@ -1278,10 +1286,39 @@
SmooksGraphConstants.IMAGE_ERROR));
Label notifyLabel = new Label(designTimeAnalyzeResultRegion,
SWT.NONE);
+ Menu menu = new Menu(getSite().getShell(), SWT.POP_UP);
+ List<ResolveCommand> list = result.getResolveProblem();
+ for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) {
+ final ResolveCommand resolveCommand = (ResolveCommand) iterator2
+ .next();
+ MenuItem item = new MenuItem(menu, SWT.NONE);
+ item.addSelectionListener(new SelectionListener() {
+
+ public void widgetDefaultSelected(SelectionEvent arg0) {
+ widgetSelected(arg0);
+ }
+
+ public void widgetSelected(SelectionEvent arg0) {
+ try {
+ resolveCommand.execute();
+ commandStackChanged = true;
+ analyzeDesignGraph();
+ firePropertyChange(PROP_DIRTY);
+ } catch (Exception e) {
+ UIUtils.showErrorDialog(getSite().getShell(),
+ UIUtils.createErrorStatus(e));
+ }
+ }
+
+ });
+ item.setText(resolveCommand.getResolveDescription());
+ item.setImage(resolveCommand.getImage());
+ }
+ notifyLabel.setMenu(menu);
GridData nlgd = new GridData(GridData.FILL_HORIZONTAL);
notifyLabel.setLayoutData(nlgd);
notifyLabel.setText(result.getErrorMessage());
-
+
}
}
}
@@ -1305,8 +1342,7 @@
}
updateNotifyMessage();
} catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ UIUtils.showErrorDialog(getSite().getShell(), UIUtils.createErrorStatus(e));
}
}
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-10-26 11:25:56 UTC (rev 11184)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -58,7 +58,6 @@
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
-
SmooksResourceListType listType = context.getSmooksResourceListModel();
GraphRootModel rootModel = context.getGraphicalRootModel();
List children = rootModel.getChildren();
Modified: branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-26 11:25:56 UTC (rev 11184)
+++ branches/jbosstools-3.0.0.Beta1/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-26 11:33:25 UTC (rev 11185)
@@ -21,24 +21,28 @@
/*
* (non-Javadoc)
*
- * @see org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingGraphModel(org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext)
+ * @see
+ * org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingGraphModel
+ * (
+ * org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext
+ * )
*/
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
- if (true) {
- Shell shell = context.getShell();
- MessageDialog.openWarning(shell, "Warning",
- "The xml2xml can't be generate to config file currently.");
- return;
- }
+ Shell shell = context.getShell();
+ MessageDialog.openWarning(shell, "Warning",
+ "The xml2xml can't be generate to config file currently.");
+ return;
}
/*
* (non-Javadoc)
*
- * @see org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingSmooksModel(org.jboss.tools.smooks.model.SmooksResourceListType,
- * java.lang.Object, java.lang.Object)
+ * @see
+ * org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingSmooksModel
+ * (org.jboss.tools.smooks.model.SmooksResourceListType, java.lang.Object,
+ * java.lang.Object)
*/
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType, Object sourceObject,
17 years, 5 months
JBoss Tools SVN: r11184 - trunk/birt/plugins/org.jboss.tools.birt.core/resources.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2008-10-26 07:25:56 -0400 (Sun, 26 Oct 2008)
New Revision: 11184
Modified:
trunk/birt/plugins/org.jboss.tools.birt.core/resources/jboss-seam-birt.jar
Log:
JBIDE-2997 NPE when using an expression in the birt:param tag
Modified: trunk/birt/plugins/org.jboss.tools.birt.core/resources/jboss-seam-birt.jar
===================================================================
(Binary files differ)
17 years, 5 months
JBoss Tools SVN: r11183 - branches/jbosstools-3.0.0.Beta1/birt/plugins/org.jboss.tools.birt.core/resources.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2008-10-26 07:25:15 -0400 (Sun, 26 Oct 2008)
New Revision: 11183
Modified:
branches/jbosstools-3.0.0.Beta1/birt/plugins/org.jboss.tools.birt.core/resources/jboss-seam-birt.jar
Log:
JBIDE-2997 NPE when using an expression in the birt:param tag
Modified: branches/jbosstools-3.0.0.Beta1/birt/plugins/org.jboss.tools.birt.core/resources/jboss-seam-birt.jar
===================================================================
(Binary files differ)
17 years, 5 months
JBoss Tools SVN: r11182 - in trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks: java2xml/analyzer and 5 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2008-10-26 06:12:01 -0400 (Sun, 26 Oct 2008)
New Revision: 11182
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java
Removed:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/util/editparts/
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/util/figures/
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
Log:
JBIDE-2867
Change the display composite to sashform
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java 2008-10-25 21:57:33 UTC (rev 11181)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/DesignTimeAnalyzeResult.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -3,13 +3,17 @@
*/
package org.jboss.tools.smooks.analyzer;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* @author dart
*
*/
public class DesignTimeAnalyzeResult {
- public String errorMessage;
- public String warningMessage;
+ protected String errorMessage;
+ protected String warningMessage;
+ protected List<ResolveCommand> resolveCommandList = new ArrayList<ResolveCommand>();
public String getErrorMessage() {
return errorMessage;
}
@@ -23,5 +27,17 @@
this.warningMessage = warningMessage;
}
+ public void addResolveCommand(ResolveCommand command){
+ this.resolveCommandList.add(command);
+ }
+ public void removeResolveCommand(ResolveCommand command){
+ this.resolveCommandList.remove(command);
+ }
+
+ public List<ResolveCommand> getResolveProblem(){
+ return resolveCommandList;
+ }
+
+
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java 2008-10-25 21:57:33 UTC (rev 11181)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IMappingAnalyzer.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -10,8 +10,6 @@
******************************************************************************/
package org.jboss.tools.smooks.analyzer;
-import java.util.List;
-
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
@@ -20,12 +18,32 @@
*
*/
public interface IMappingAnalyzer {
+ /**
+ * Parse the graphical model and generate the smooks config file model
+ * @param context
+ * @throws SmooksAnalyzerException
+ */
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException;
+
+ /**
+ * Parse the smooks config file model what loaded by EMF , and create the relating graphical model for it.
+ * @param listType
+ * @param sourceObject
+ * @param targetObject
+ * @return
+ */
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType,Object sourceObject,Object targetObject);
- public DesignTimeAnalyzeResult analyzeGraphModel(SmooksConfigurationFileGenerateContext context);
+ /**
+ * Analyze the graphical model to find the incorrect logic model and return the analyze result.<p>
+ * The graphical editor will display the analyze result.
+ * @param context
+ * @return
+ */
+ public DesignTimeAnalyzeResult[] analyzeGraphModel(SmooksConfigurationFileGenerateContext context);
}
+
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.analyzer;
+
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public class ResolveCommand {
+ private SmooksConfigurationFileGenerateContext context;
+
+ private String resolveDescription ;
+
+ private Image image;
+
+ public void setResolveDescription(String resolveDescription) {
+ this.resolveDescription = resolveDescription;
+ }
+
+ public void setImage(Image image) {
+ this.image = image;
+ }
+
+ public ResolveCommand(SmooksConfigurationFileGenerateContext context){
+ this.context = context;
+ }
+
+ public SmooksConfigurationFileGenerateContext getContext() {
+ return context;
+ }
+
+ public void execute() throws Exception{
+
+ }
+
+ public Image getImage(){
+ return image;
+ }
+
+ public String getResolveDescription(){
+ return resolveDescription;
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/ResolveCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-25 21:57:33 UTC (rev 11181)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/java2xml/analyzer/Java2XMLAnalyzer.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -56,7 +56,6 @@
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
// TODO will modify soon
-
if(true){
Shell shell = context.getShell();
MessageDialog.openWarning(shell, "Warning", "The java2xml can't be generate to config file currently.");
@@ -174,7 +173,7 @@
return "${" + name + "}";
}
- public DesignTimeAnalyzeResult analyzeGraphModel(
+ public DesignTimeAnalyzeResult[] analyzeGraphModel(
SmooksConfigurationFileGenerateContext context) {
// TODO Auto-generated method stub
return null;
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -0,0 +1,50 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.javabean.analyzer;
+
+import org.jboss.tools.smooks.analyzer.ResolveCommand;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+
+/**
+ * @author Dart
+ *
+ */
+public class Java2JavaResolveCommand extends ResolveCommand {
+
+ private JavaBeanModel sourceModel;
+
+ private JavaBeanModel targetModel;
+
+
+
+ public JavaBeanModel getSourceModel() {
+ return sourceModel;
+ }
+
+ public void setSourceModel(JavaBeanModel sourceModel) {
+ this.sourceModel = sourceModel;
+ }
+
+ public JavaBeanModel getTargetModel() {
+ return targetModel;
+ }
+
+ public void setTargetModel(JavaBeanModel targetModel) {
+ this.targetModel = targetModel;
+ }
+
+ public Java2JavaResolveCommand(
+ SmooksConfigurationFileGenerateContext context) {
+ super(context);
+ }
+
+ @Override
+ public void execute() throws Exception {
+
+ SmooksConfigurationFileGenerateContext context = getContext();
+ if(context == null) throw new RuntimeException("Smooks generated context is NULL");
+
+ }
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/Java2JavaResolveCommand.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-10-25 21:57:33 UTC (rev 11181)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -39,8 +39,11 @@
import org.jboss.tools.smooks.analyzer.ITargetModelAnalyzer;
import org.jboss.tools.smooks.analyzer.MappingModel;
import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
+import org.jboss.tools.smooks.analyzer.ResolveCommand;
import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.graphical.Param;
+import org.jboss.tools.smooks.graphical.Params;
import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
import org.jboss.tools.smooks.javabean.model.JavaBeanModelFactory;
import org.jboss.tools.smooks.model.AbstractResourceConfig;
@@ -76,6 +79,10 @@
public static final String SPACE_STRING = " ";
+ private static final int TARGET_DATA = 1;
+
+ private static final int SOURCE_DATA = 0;
+
private List usedConnectionList = new ArrayList();
private ComposedAdapterFactory adapterFactory;
@@ -350,7 +357,7 @@
AbstractStructuredDataModel sourceModel) {
JavaBeanModel source = (JavaBeanModel) sourceModel
.getReferenceEntityModel();
- if(source.getBeanClass().isArray()){
+ if (source.getBeanClass().isArray()) {
return source.getName();
}
if (Collection.class.isAssignableFrom(source.getBeanClass())) {
@@ -360,12 +367,12 @@
}
- private DesignTimeAnalyzeResult checkOtherNodeConnected(
+ private DesignTimeAnalyzeResult[] checkOtherNodeConnected(
SmooksConfigurationFileGenerateContext context) {
GraphRootModel root = context.getGraphicalRootModel();
List sourceList = root.loadSourceModelList();
List targetList = root.loadTargetModelList();
- StringBuffer buffer = new StringBuffer();
+ List<DesignTimeAnalyzeResult> arList = new ArrayList<DesignTimeAnalyzeResult>();
for (Iterator iterator = targetList.iterator(); iterator.hasNext();) {
AbstractStructuredDataModel targetm = (AbstractStructuredDataModel) iterator
.next();
@@ -384,24 +391,22 @@
if (pgm != null && pgm instanceof IConnectableModel) {
if (((IConnectableModel) pgm)
.getModelTargetConnections().isEmpty()) {
- buffer
- .append("The parent of Java node \""
- + javaModel.getName()
- + "\" : \""
- + parent.getName()
- + "\" doesn't be connected by any source node!\n");
+ String errorMessage = "The parent of Java node \""
+ + javaModel.getName()
+ + "\" : \""
+ + parent.getName()
+ + "\" doesn't be connected by any source node";
+ DesignTimeAnalyzeResult dr = new DesignTimeAnalyzeResult();
+ dr.setErrorMessage(errorMessage);
+ Java2JavaResolveCommand command = new Java2JavaResolveCommand(context);
+// command.setResolveDescription(resolveDescription);
+ arList.add(dr);
}
}
}
}
}
- String result = buffer.toString();
- if ("".equals(result)) {
- return null;
- }
- DesignTimeAnalyzeResult dr = new DesignTimeAnalyzeResult();
- dr.setErrorMessage(result);
- return dr;
+ return arList.toArray(new DesignTimeAnalyzeResult[0]);
}
/**
@@ -491,7 +496,11 @@
/*
* (non-Javadoc)
*
- * @see org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingGraphModel(org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext)
+ * @see
+ * org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingGraphModel
+ * (
+ * org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext
+ * )
*/
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
@@ -541,7 +550,8 @@
}
String beanClass = SmooksModelUtils.getParmaText(
"beanClass", rc);
- if (targetName!=null && targetName.trim().equals(beanClass)) {
+ if (targetName != null
+ && targetName.trim().equals(beanClass)) {
setSelectorIsUsed(sourceName);
// create the first connection
mappingModelList.add(new MappingModel(source, target));
@@ -649,6 +659,27 @@
return null;
}
+ private String getDataSourceClass(GraphInformations info, int dataMode) {
+ String key = "sourceDataPath";
+ if (dataMode == SOURCE_DATA) {
+ key = "sourceDataPath";
+ }
+ if (dataMode == TARGET_DATA) {
+ key = "targetDataPath";
+ }
+
+ Params params = info.getParams();
+ List paramList = params.getParam();
+ for (Iterator iterator = paramList.iterator(); iterator.hasNext();) {
+ Param param = (Param) iterator.next();
+ if (key.equals(param.getName())) {
+ return param.getValue();
+ }
+ }
+
+ return null;
+ }
+
public Object buildSourceInputObjects(GraphInformations graphInfo,
SmooksResourceListType listType, IFile sourceFile,
ClassLoader classLoader) throws InvocationTargetException {
@@ -673,9 +704,12 @@
}
}
}
-
- if (rootClassName == null)
+ if (rootClassName == null) {
+ rootClassName = this.getDataSourceClass(graphInfo, SOURCE_DATA);
+ }
+ if (rootClassName == null) {
return null;
+ }
boolean isWarning = false;
boolean isError = false;
@@ -756,10 +790,16 @@
}
}
}
- if (current == null)
+ if (current == null) {
+ rootClassName = this.getDataSourceClass(graphInfo, TARGET_DATA);
+ }
+ // if can't load the source from GraphicalInformation , return NULL
+ if (current == null && rootClassName == null)
return null;
Class rootClass = null;
- rootClassName = SmooksModelUtils.getParmaText("beanClass", current);
+ if (rootClassName == null) {
+ rootClassName = SmooksModelUtils.getParmaText("beanClass", current);
+ }
if (rootClassName != null && loader != null) {
try {
rootClass = loader.loadClass(rootClassName);
@@ -801,9 +841,6 @@
String selector = SmooksModelUtils
.getAttributeValueFromAnyType(binding,
SmooksModelUtils.ATTRIBUTE_SELECTOR);
- // if(property == null){
- // continue;
- // }
processBindingPropertyFromTargetModel(listType, property,
selector, beanModel, classLoader);
}
@@ -1006,7 +1043,7 @@
return null;
}
- public DesignTimeAnalyzeResult analyzeGraphModel(
+ public DesignTimeAnalyzeResult[] analyzeGraphModel(
SmooksConfigurationFileGenerateContext context) {
checkRootNodeConnected(context);
return checkOtherNodeConnected(context);
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -0,0 +1,19 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * @author Dart
+ * @date 2008.10.24
+ */
+public class ProblemLabel extends Label {
+
+ public ProblemLabel(Composite parent, int style) {
+ super(parent, style);
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ProblemLabel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -0,0 +1,140 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.ui.editors;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseTrackListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
+import org.jboss.tools.smooks.analyzer.ResolveCommand;
+import org.jboss.tools.smooks.ui.SmooksUIActivator;
+import org.jboss.tools.smooks.ui.gef.util.GraphicsConstants;
+import org.jboss.tools.smooks.utils.SmooksGraphConstants;
+import org.jboss.tools.smooks.utils.UIUtils;
+
+/**
+ * @author Dart
+ *
+ */
+public class ResolveCommandPanel extends Composite {
+
+ private static List<Shell> shellList = new ArrayList<Shell>();
+
+ public ResolveCommandPanel(Composite parent, int style) {
+ super(parent, style);
+ // TODO Auto-generated constructor stub
+ }
+
+ public static void open(List<ResolveCommand> list, Shell shell,
+ Point location) {
+ try {
+ closeAll();
+ if (shell == null)
+ return;
+ final Shell newShell = new Shell(shell, SWT.NONE);
+ FillLayout fill = new FillLayout();
+ fill.marginHeight = 0;
+ fill.marginWidth = 0;
+ newShell.setLayout(fill);
+ final ResolveCommandPanel panel = new ResolveCommandPanel(newShell,
+ SWT.NONE);
+ panel.setBackground(ColorConstants.cyan);
+ newShell.addFocusListener(new FocusListener(){
+
+ public void focusGained(FocusEvent arg0) {
+ System.out.println("Gained");
+ }
+
+ public void focusLost(FocusEvent arg0) {
+ if (!newShell.isDisposed()) {
+ newShell.close();
+ }
+ }
+ });
+
+ panel.setBackground(ColorConstants.black);
+ FillLayout layout = new FillLayout();
+ layout.marginHeight = 1;
+ layout.marginWidth = 1;
+ panel.setLayout(layout);
+
+ Composite com = new Composite(panel, SWT.NONE);
+ GridLayout glayout = new GridLayout();
+ com.setLayout(glayout);
+ if (list != null) {
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ final ResolveCommand resolveCommand = (ResolveCommand) iterator
+ .next();
+ ImageHyperlink link = new ImageHyperlink(com, SWT.NONE);
+ link.addHyperlinkListener(new IHyperlinkListener() {
+
+ public void linkActivated(HyperlinkEvent arg0) {
+ try {
+ newShell.close();
+ resolveCommand.execute();
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void linkEntered(HyperlinkEvent arg0) {
+
+ }
+
+ public void linkExited(HyperlinkEvent arg0) {
+
+ }
+
+ });
+ String text = resolveCommand.getResolveDescription();
+ if (text == null)
+ text = "<NULL>";
+ link.setText(text);
+ Image image = resolveCommand.getImage();
+ if (image == null) {
+ image = SmooksUIActivator.getDefault()
+ .getImageRegistry().get(
+ SmooksGraphConstants.IMAGE_EMPTY);
+ }
+ link.setImage(image);
+ }
+ }
+ newShell.setLocation(location);
+ newShell.setSize(new Point(400, 100));
+ shellList.add(newShell);
+
+ newShell.open();
+ newShell.setVisible(false);
+// newShell.setVisible(true);
+ } catch (Throwable e) {
+ UIUtils.showErrorDialog(shell, UIUtils.createErrorStatus(e));
+ }
+ }
+
+ public static void closeAll(){
+ for (Iterator iterator = shellList.iterator(); iterator.hasNext();) {
+ Shell shell = (Shell) iterator.next();
+ if(!shell.isDisposed()) shell.close();
+ }
+
+ shellList.clear();
+ }
+
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/ResolveCommandPanel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-25 21:57:33 UTC (rev 11181)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -61,14 +61,20 @@
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSourceAdapter;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.events.TreeListener;
+import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -78,6 +84,9 @@
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.IEditorInput;
@@ -101,6 +110,7 @@
import org.jboss.tools.smooks.analyzer.ITargetModelAnalyzer;
import org.jboss.tools.smooks.analyzer.MappingModel;
import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
+import org.jboss.tools.smooks.analyzer.ResolveCommand;
import org.jboss.tools.smooks.analyzer.ResourceConfigEraser;
import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
import org.jboss.tools.smooks.analyzer.SmooksFileBuilder;
@@ -117,7 +127,6 @@
import org.jboss.tools.smooks.ui.IViewerInitor;
import org.jboss.tools.smooks.ui.SmooksUIActivator;
import org.jboss.tools.smooks.ui.StructuredDataCreationWizardDailog;
-import org.jboss.tools.smooks.ui.ViewerInitorStore;
import org.jboss.tools.smooks.ui.gef.editparts.SmooksEditPartFactory;
import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
import org.jboss.tools.smooks.ui.gef.model.GraphRootModel;
@@ -141,6 +150,9 @@
public class SmooksGraphicalFormPage extends FormPage implements
ISelectionChangedListener, ISelectionProvider,
org.eclipse.emf.common.command.CommandStackListener {
+
+ private List<DesignTimeAnalyzeResult> analyzeResultList = new ArrayList<DesignTimeAnalyzeResult>();
+
private static final String REFERENCE_MODEL = "__reference_model";
protected SmooksConfigurationFileGenerateContext smooksConfigurationFileGenerateContext;
protected IViewerInitor sourceViewerInitor;
@@ -168,10 +180,10 @@
private ISelection selection;
protected MappingResourceConfigList mappingResourceConfigList;
protected AdapterFactoryEditingDomain editingDomain;
- private Label notifyLabel;
private boolean canSaveFile = true;
- private Label imageLabel;
+ private Composite designTimeAnalyzeResultRegion;
+
public ISelection getSelection() {
return selection;
}
@@ -268,37 +280,38 @@
Section.TITLE_BAR | Section.DESCRIPTION,
"Mapping Graph Edit Panel",
"Edit the source and target assosiation");
- Composite mappingMainComposite = toolkit.createComposite(section);
- GridLayout gly = new GridLayout();
- gly.numColumns = 3;
- gly.horizontalSpacing = 0;
- mappingMainComposite.setLayout(gly);
- section.setClient(mappingMainComposite);
- Composite notifyComposite = toolkit
- .createComposite(mappingMainComposite);
- GridData ngd = new GridData(GridData.FILL_HORIZONTAL);
- ngd.horizontalSpan = 3;
+ Composite mainComposite = toolkit.createComposite(section);
+ section.setClient(mainComposite);
+
+ GridLayout mainLayout = new GridLayout();
+ mainComposite.setLayout(mainLayout);
+
+ SashForm sashForm = new SashForm(mainComposite, SWT.VERTICAL);
+ GridData sashFormLd = new GridData(GridData.FILL_BOTH);
+ sashForm.setLayoutData(sashFormLd);
+
+ sashForm.setSashWidth(1);
+
+ designTimeAnalyzeResultRegion = toolkit.createComposite(sashForm);
GridLayout ngl = new GridLayout();
ngl.numColumns = 2;
- notifyComposite.setLayout(ngl);
- notifyComposite.setLayoutData(ngd);
- imageLabel = toolkit.createLabel(notifyComposite, "");
- imageLabel.setImage(SmooksUIActivator.getDefault().getImageRegistry()
- .get(SmooksGraphConstants.IMAGE_EMPTY));
- notifyLabel = toolkit.createLabel(notifyComposite, "" );
- GridData nlgd = new GridData(GridData.FILL_HORIZONTAL);
- notifyLabel.setLayoutData(nlgd);
+ ngl.marginWidth = 0;
+ designTimeAnalyzeResultRegion.setLayout(ngl);
+
+ SashForm mappingMainComposite = new SashForm(sashForm, SWT.NONE);
+ mappingMainComposite.setSashWidth(1);
GridData sgd = new GridData(GridData.FILL_BOTH);
section.setLayoutData(sgd);
{
Composite composite1 = toolkit
.createComposite(mappingMainComposite);
GridLayout layout = new GridLayout();
+ layout.marginWidth = 1;
layout.marginHeight = 1;
- layout.marginWidth = 1;
+ composite1.setLayout(layout);
+
GridData gd = new GridData(GridData.FILL_BOTH);
- composite1.setLayout(layout);
sourceViewer = this.createSourceTreeViewer(composite1);
sourceViewer.getTree().setLayoutData(gd);
sourceViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY
@@ -320,26 +333,16 @@
composite1.setLayoutData(gd);
composite1.setBackground(GraphicsConstants.groupBorderColor);
}
+
{
Composite composite2 = toolkit
.createComposite(mappingMainComposite);
- GridData composite2LData = new GridData();
- composite2LData.grabExcessHorizontalSpace = true;
- composite2LData.grabExcessVerticalSpace = true;
- composite2LData.horizontalAlignment = GridData.FILL;
- composite2LData.verticalAlignment = GridData.FILL;
- composite2.setLayoutData(composite2LData);
composite2.setLayout(new FillLayout());
this.setGraphicalViewer(createGraphicalViewer(composite2));
}
{
Composite composite3 = toolkit
.createComposite(mappingMainComposite);
- GridData composite3LData = new GridData();
- composite3LData.grabExcessHorizontalSpace = true;
- composite3LData.verticalAlignment = GridData.FILL;
- composite3LData.grabExcessVerticalSpace = true;
- composite3LData.horizontalAlignment = GridData.FILL;
GridLayout layout = new GridLayout();
layout.marginWidth = 1;
layout.marginHeight = 1;
@@ -362,8 +365,7 @@
}
{
- Composite underToolPanel = toolkit
- .createComposite(mappingMainComposite);
+ Composite underToolPanel = toolkit.createComposite(mainComposite);
GridData sgd1 = new GridData(GridData.FILL_HORIZONTAL);
GridLayout underLayout = new GridLayout();
underLayout.numColumns = 3;
@@ -416,8 +418,8 @@
// section1.setLayoutData(sgd1);
toolkit.paintBordersFor(rootMainControl);
-
form.pack();
+ sashForm.setWeights(new int[] { 8, 100 });
if (initSourceTreeViewerProviders()) {
initSourceTreeViewer();
expandSourceConnectionModel();
@@ -665,7 +667,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.ui.forms.editor.FormPage#doSave(org.eclipse.core.runtime.IProgressMonitor)
+ * @see
+ * org.eclipse.ui.forms.editor.FormPage#doSave(org.eclipse.core.runtime.
+ * IProgressMonitor)
*/
@Override
public void doSave(IProgressMonitor monitor) {
@@ -674,8 +678,8 @@
.openQuestion(
getSite().getShell(),
"Clean all the errors please",
- "There occurs some errors on the graphical design , please clean all errors .\n" +
- "Click \"Yes\" to return . If you don't care that , click \"No\" to save file.");
+ "There occurs some errors on the graphical design , please clean all errors .\n"
+ + "Click \"Yes\" to return . If you don't care that , click \"No\" to save file.");
if (cleanError)
return;
}
@@ -975,8 +979,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.ui.forms.editor.FormPage#init(org.eclipse.ui.IEditorSite,
- * org.eclipse.ui.IEditorInput)
+ * @see
+ * org.eclipse.ui.forms.editor.FormPage#init(org.eclipse.ui.IEditorSite,
+ * org.eclipse.ui.IEditorInput)
*/
public void init(IEditorSite site, IEditorInput input) {
super.init(site, input);
@@ -1096,7 +1101,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.ui.forms.events.IHyperlinkListener#linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent)
+ * @see
+ * org.eclipse.ui.forms.events.IHyperlinkListener#linkActivated(org.
+ * eclipse.ui.forms.events.HyperlinkEvent)
*/
public void linkActivated(HyperlinkEvent e) {
showCreationWizard(viewer);
@@ -1105,7 +1112,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.ui.forms.events.IHyperlinkListener#linkEntered(org.eclipse.ui.forms.events.HyperlinkEvent)
+ * @see
+ * org.eclipse.ui.forms.events.IHyperlinkListener#linkEntered(org.eclipse
+ * .ui.forms.events.HyperlinkEvent)
*/
public void linkEntered(HyperlinkEvent e) {
@@ -1114,7 +1123,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.ui.forms.events.IHyperlinkListener#linkExited(org.eclipse.ui.forms.events.HyperlinkEvent)
+ * @see
+ * org.eclipse.ui.forms.events.IHyperlinkListener#linkExited(org.eclipse
+ * .ui.forms.events.HyperlinkEvent)
*/
public void linkExited(HyperlinkEvent e) {
@@ -1146,7 +1157,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
+ * @see
+ * org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets
+ * .Event)
*/
public void handleEvent(Event event) {
TreeItem item = (TreeItem) event.item;
@@ -1179,7 +1192,9 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt.events.PaintEvent)
+ * @see
+ * org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt
+ * .events.PaintEvent)
*/
public void paintControl(PaintEvent e) {
Tree tree = (Tree) e.getSource();
@@ -1253,27 +1268,57 @@
getManagedForm().dirtyStateChanged();
}
- protected void setErrorMessage(String errorMessage) {
- imageLabel.setImage(SmooksUIActivator.getDefault().getImageRegistry().get(SmooksGraphConstants.IMAGE_EMPTY));
- notifyLabel.setText("");
- canSaveFile = true;
- if (errorMessage != null) {
- imageLabel.setImage(SmooksUIActivator.getDefault()
- .getImageRegistry().get(SmooksGraphConstants.IMAGE_ERROR));
- notifyLabel.setText(errorMessage);
- canSaveFile = false;
+ protected void updateErrorMessage() {
+ for (Iterator<DesignTimeAnalyzeResult> iterator = this.analyzeResultList
+ .iterator(); iterator.hasNext();) {
+ DesignTimeAnalyzeResult result = (DesignTimeAnalyzeResult) iterator
+ .next();
+ if (result.getErrorMessage() != null) {
+ if (canSaveFile)
+ canSaveFile = false;
+ Label imageLabel = new Label(designTimeAnalyzeResultRegion,
+ SWT.NONE);
+ GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
+ imageLabel.setLayoutData(gd);
+ imageLabel.setImage(SmooksUIActivator.getDefault()
+ .getImageRegistry().get(
+ SmooksGraphConstants.IMAGE_ERROR));
+ Label notifyLabel = new Label(designTimeAnalyzeResultRegion,
+ SWT.NONE);
+ Menu menu = new Menu(getSite().getShell(),SWT.POP_UP);
+ List<ResolveCommand> list = result.getResolveProblem();
+ for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) {
+ final ResolveCommand resolveCommand = (ResolveCommand) iterator2
+ .next();
+ MenuItem item = new MenuItem(menu,SWT.NONE);
+ item.addSelectionListener(new SelectionListener(){
+
+ public void widgetDefaultSelected(SelectionEvent arg0) {
+ widgetSelected(arg0);
+ }
+
+ public void widgetSelected(SelectionEvent arg0) {
+ try {
+ resolveCommand.execute();
+ } catch (Exception e) {
+ }
+ }
+
+ });
+ item.setText(resolveCommand.getResolveDescription());
+ item.setImage(resolveCommand.getImage());
+ }
+ notifyLabel.setMenu(menu);
+ GridData nlgd = new GridData(GridData.FILL_HORIZONTAL);
+ notifyLabel.setLayoutData(nlgd);
+ notifyLabel.setText(result.getErrorMessage());
+
+ }
}
}
- protected void setWarningMessage(String warningMessage) {
- imageLabel.setImage(SmooksUIActivator.getDefault().getImageRegistry().get(SmooksGraphConstants.IMAGE_EMPTY));
- notifyLabel.setText("");
- if (warningMessage != null) {
- imageLabel
- .setImage(SmooksUIActivator.getDefault().getImageRegistry()
- .get(SmooksGraphConstants.IMAGE_WARNING));
- notifyLabel.setText(warningMessage);
- }
+ protected void updateWarningMessage() {
+
}
protected void analyzeDesignGraph() {
@@ -1283,28 +1328,33 @@
SmooksConfigurationFileGenerateContext context = this
.createContext();
this.initSmooksConfigurationFileGenerateContext(context);
- DesignTimeAnalyzeResult result = analyzer
+ DesignTimeAnalyzeResult[] results = analyzer
.analyzeGraphModel(context);
- if (result != null) {
- String errorMessage = result.getErrorMessage();
- String warningMessage = result.getWarningMessage();
-
- if (errorMessage != null) {
- setErrorMessage(errorMessage);
- return;
- }
-
- if (warningMessage != null) {
- setWarningMessage(warningMessage);
- return;
- }
+ analyzeResultList.clear();
+ for (int i = 0; i < results.length; i++) {
+ analyzeResultList.add(results[i]);
}
+ updateNotifyMessage();
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
+ protected void updateNotifyMessage() {
+ canSaveFile = true;
+ Control[] children = designTimeAnalyzeResultRegion.getChildren();
+ for (int i = 0; i < children.length; i++) {
+ Control c = children[i];
+ c.setVisible(false);
+ c.dispose();
+ c = null;
+ }
+ updateErrorMessage();
+ updateWarningMessage();
+ designTimeAnalyzeResultRegion.layout(true);
+ }
+
/**
* @return the editingDomain
*/
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-10-25 21:57:33 UTC (rev 11181)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -58,7 +58,6 @@
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
-
SmooksResourceListType listType = context.getSmooksResourceListModel();
GraphRootModel rootModel = context.getGraphicalRootModel();
List children = rootModel.getChildren();
@@ -218,6 +217,8 @@
JavaBeanModel sourceTarget = (JavaBeanModel) targetObject;
ResourceConfigType rootResourceConfig = findFirstMappingResourceConfig(listType);
+ // if can't find the root , return null
+ if(rootResourceConfig ==null) return null;
String xmlName = rootResourceConfig.getSelector();
AbstractXMLObject source = findXMLObjectByName(xmlName, sourceRoot);
if (source == null)
@@ -391,7 +392,7 @@
return null;
}
- public DesignTimeAnalyzeResult analyzeGraphModel(
+ public DesignTimeAnalyzeResult[] analyzeGraphModel(
SmooksConfigurationFileGenerateContext context) {
// TODO Auto-generated method stub
return null;
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-25 21:57:33 UTC (rev 11181)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2xml/XML2XMLAnalyzer.java 2008-10-26 10:12:01 UTC (rev 11182)
@@ -21,24 +21,28 @@
/*
* (non-Javadoc)
*
- * @see org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingGraphModel(org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext)
+ * @see
+ * org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingGraphModel
+ * (
+ * org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext
+ * )
*/
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
- if (true) {
- Shell shell = context.getShell();
- MessageDialog.openWarning(shell, "Warning",
- "The xml2xml can't be generate to config file currently.");
- return;
- }
+ Shell shell = context.getShell();
+ MessageDialog.openWarning(shell, "Warning",
+ "The xml2xml can't be generate to config file currently.");
+ return;
}
/*
* (non-Javadoc)
*
- * @see org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingSmooksModel(org.jboss.tools.smooks.model.SmooksResourceListType,
- * java.lang.Object, java.lang.Object)
+ * @see
+ * org.jboss.tools.smooks.analyzer.IMappingAnalyzer#analyzeMappingSmooksModel
+ * (org.jboss.tools.smooks.model.SmooksResourceListType, java.lang.Object,
+ * java.lang.Object)
*/
public MappingResourceConfigList analyzeMappingSmooksModel(
SmooksResourceListType listType, Object sourceObject,
@@ -46,7 +50,7 @@
return null;
}
- public DesignTimeAnalyzeResult analyzeGraphModel(
+ public DesignTimeAnalyzeResult[] analyzeGraphModel(
SmooksConfigurationFileGenerateContext context) {
// TODO Auto-generated method stub
return null;
17 years, 5 months
JBoss Tools SVN: r11181 - branches/jbosstools-3.0.0.Beta1/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-10-25 17:57:33 -0400 (Sat, 25 Oct 2008)
New Revision: 11181
Modified:
branches/jbosstools-3.0.0.Beta1/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java
Log:
JBIDE-2989
Modified: branches/jbosstools-3.0.0.Beta1/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java
===================================================================
--- branches/jbosstools-3.0.0.Beta1/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java 2008-10-25 21:51:27 UTC (rev 11180)
+++ branches/jbosstools-3.0.0.Beta1/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java 2008-10-25 21:57:33 UTC (rev 11181)
@@ -51,7 +51,7 @@
public void run() {
ErrorDialog ed = new ErrorDialogWithPreference(
new Shell(), ArchivesUIMessages.BuildError,
- NLS.bind(ArchivesUIMessages.BuildError2, node.toString()),
+ NLS.bind(ArchivesUIMessages.BuildError2, node == null ? node : node.toString()),
ms, IStatus.ERROR );
ed.open();
}
17 years, 5 months
JBoss Tools SVN: r11180 - trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-10-25 17:51:27 -0400 (Sat, 25 Oct 2008)
New Revision: 11180
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java
Log:
JBIDE-2989
Modified: trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java
===================================================================
--- trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java 2008-10-25 10:41:15 UTC (rev 11179)
+++ trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/ArchivesUIBuildListener.java 2008-10-25 21:51:27 UTC (rev 11180)
@@ -1,146 +1,146 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.ide.eclipse.archives.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-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.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.jboss.ide.eclipse.archives.core.ArchivesCore;
-import org.jboss.ide.eclipse.archives.core.model.AbstractBuildListener;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
-
-/**
- *
- * @author "Rob Stryker" <rob.stryker(a)redhat.com>
- *
- */
-public class ArchivesUIBuildListener extends AbstractBuildListener {
-
- public void error(final IArchiveNode node, final IStatus[] multi) {
- final MultiStatus ms = new MultiStatus(ArchivesCore.PLUGIN_ID, 0, ArchivesUIMessages.BuildError, null);
- for( int i = 0; i < multi.length; i++ ) {
- ms.add(multi[i]);
- }
- if( PrefsInitializer.getBoolean(PrefsInitializer.PREF_SHOW_BUILD_ERROR_DIALOG)) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- ErrorDialog ed = new ErrorDialogWithPreference(
- new Shell(), ArchivesUIMessages.BuildError,
- NLS.bind(ArchivesUIMessages.BuildError2, node.toString()),
- ms, IStatus.ERROR );
- ed.open();
- }
- } );
- } else {
- ArchivesCore.getInstance().getLogger().log(ms);
- }
- }
-
- public static class ErrorDialogWithPreference extends ErrorDialog {
- private Button checkbox;
- public ErrorDialogWithPreference(Shell parentShell, String dialogTitle,
- String message, IStatus status, int displayMask) {
- super(parentShell, dialogTitle, message, status, displayMask);
- }
- protected void okPressed() {
- // save the checkbox selection
- if( checkbox.getSelection()) {
- PrefsInitializer.setBoolean(PrefsInitializer.PREF_SHOW_BUILD_ERROR_DIALOG, false);
- }
- super.okPressed();
- }
- protected Control createMessageArea(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayoutData(new GridData(GridData.FILL));
- composite.setLayout(new FormLayout());
-
- // create composite
- // create image
- Image image = getImage();
- if (image != null) {
- imageLabel = new Label(composite, SWT.NULL);
- image.setBackground(imageLabel.getBackground());
- imageLabel.setImage(image);
- addAccessibleListeners(imageLabel, image);
- FormData fd = new FormData();
- fd.left = new FormAttachment(0,5);
- fd.top = new FormAttachment(0,5);
- imageLabel.setLayoutData(fd);
- }
- // create message
- if (message != null) {
- messageLabel = new Label(composite, getMessageLabelStyle());
- messageLabel.setText(message);
- FormData fd = new FormData();
- fd.top = new FormAttachment(0,5);
- fd.left = image == null ? new FormAttachment(0,5) : new FormAttachment(imageLabel,5);
- messageLabel.setLayoutData(fd);
- }
-
- checkbox = new Button(composite, SWT.CHECK);
- checkbox.setText(ArchivesUIMessages.DoNotShowThisAgain);
- FormData fd = new FormData();
- fd.top = new FormAttachment(messageLabel,5);
- fd.left = new FormAttachment(0,5);
- fd.right = new FormAttachment(0,IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- checkbox.setLayoutData(fd);
-
- return parent;
- }
- private void addAccessibleListeners(Label label, final Image image) {
- label.getAccessible().addAccessibleListener(new AccessibleAdapter() {
- public void getName(AccessibleEvent event) {
- final String accessibleMessage = getAccessibleMessageFor(image);
- if (accessibleMessage == null) {
- return;
- }
- event.result = accessibleMessage;
- }
- });
- }
- private String getAccessibleMessageFor(Image image) {
- if (image.equals(getErrorImage())) {
- return JFaceResources.getString("error");//$NON-NLS-1$
- }
-
- if (image.equals(getWarningImage())) {
- return JFaceResources.getString("warning");//$NON-NLS-1$
- }
-
- if (image.equals(getInfoImage())) {
- return JFaceResources.getString("info");//$NON-NLS-1$
- }
-
- if (image.equals(getQuestionImage())) {
- return JFaceResources.getString("question"); //$NON-NLS-1$
- }
-
- return null;
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2007 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.ide.eclipse.archives.ui;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleAdapter;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+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.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.jboss.ide.eclipse.archives.core.ArchivesCore;
+import org.jboss.ide.eclipse.archives.core.model.AbstractBuildListener;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+
+/**
+ *
+ * @author "Rob Stryker" <rob.stryker(a)redhat.com>
+ *
+ */
+public class ArchivesUIBuildListener extends AbstractBuildListener {
+
+ public void error(final IArchiveNode node, final IStatus[] multi) {
+ final MultiStatus ms = new MultiStatus(ArchivesCore.PLUGIN_ID, 0, ArchivesUIMessages.BuildError, null);
+ for( int i = 0; i < multi.length; i++ ) {
+ ms.add(multi[i]);
+ }
+ if( PrefsInitializer.getBoolean(PrefsInitializer.PREF_SHOW_BUILD_ERROR_DIALOG)) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ ErrorDialog ed = new ErrorDialogWithPreference(
+ new Shell(), ArchivesUIMessages.BuildError,
+ NLS.bind(ArchivesUIMessages.BuildError2, node == null ? node : node.toString()),
+ ms, IStatus.ERROR );
+ ed.open();
+ }
+ } );
+ } else {
+ ArchivesCore.getInstance().getLogger().log(ms);
+ }
+ }
+
+ public static class ErrorDialogWithPreference extends ErrorDialog {
+ private Button checkbox;
+ public ErrorDialogWithPreference(Shell parentShell, String dialogTitle,
+ String message, IStatus status, int displayMask) {
+ super(parentShell, dialogTitle, message, status, displayMask);
+ }
+ protected void okPressed() {
+ // save the checkbox selection
+ if( checkbox.getSelection()) {
+ PrefsInitializer.setBoolean(PrefsInitializer.PREF_SHOW_BUILD_ERROR_DIALOG, false);
+ }
+ super.okPressed();
+ }
+ protected Control createMessageArea(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayoutData(new GridData(GridData.FILL));
+ composite.setLayout(new FormLayout());
+
+ // create composite
+ // create image
+ Image image = getImage();
+ if (image != null) {
+ imageLabel = new Label(composite, SWT.NULL);
+ image.setBackground(imageLabel.getBackground());
+ imageLabel.setImage(image);
+ addAccessibleListeners(imageLabel, image);
+ FormData fd = new FormData();
+ fd.left = new FormAttachment(0,5);
+ fd.top = new FormAttachment(0,5);
+ imageLabel.setLayoutData(fd);
+ }
+ // create message
+ if (message != null) {
+ messageLabel = new Label(composite, getMessageLabelStyle());
+ messageLabel.setText(message);
+ FormData fd = new FormData();
+ fd.top = new FormAttachment(0,5);
+ fd.left = image == null ? new FormAttachment(0,5) : new FormAttachment(imageLabel,5);
+ messageLabel.setLayoutData(fd);
+ }
+
+ checkbox = new Button(composite, SWT.CHECK);
+ checkbox.setText(ArchivesUIMessages.DoNotShowThisAgain);
+ FormData fd = new FormData();
+ fd.top = new FormAttachment(messageLabel,5);
+ fd.left = new FormAttachment(0,5);
+ fd.right = new FormAttachment(0,IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
+ checkbox.setLayoutData(fd);
+
+ return parent;
+ }
+ private void addAccessibleListeners(Label label, final Image image) {
+ label.getAccessible().addAccessibleListener(new AccessibleAdapter() {
+ public void getName(AccessibleEvent event) {
+ final String accessibleMessage = getAccessibleMessageFor(image);
+ if (accessibleMessage == null) {
+ return;
+ }
+ event.result = accessibleMessage;
+ }
+ });
+ }
+ private String getAccessibleMessageFor(Image image) {
+ if (image.equals(getErrorImage())) {
+ return JFaceResources.getString("error");//$NON-NLS-1$
+ }
+
+ if (image.equals(getWarningImage())) {
+ return JFaceResources.getString("warning");//$NON-NLS-1$
+ }
+
+ if (image.equals(getInfoImage())) {
+ return JFaceResources.getString("info");//$NON-NLS-1$
+ }
+
+ if (image.equals(getQuestionImage())) {
+ return JFaceResources.getString("question"); //$NON-NLS-1$
+ }
+
+ return null;
+ }
+ }
+}
17 years, 5 months
JBoss Tools SVN: r11179 - in trunk/archives/tests/org.jboss.ide.eclipse.archives.test: inputs and 7 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-10-25 06:41:15 -0400 (Sat, 25 Oct 2008)
New Revision: 11179
Added:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/ant/
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/ant/antTemplate.xml
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.classpath
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.packages
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.project
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/output/
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/src/
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/src/Text
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/TranslationTest.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/AntLauncher.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/SimpleAntTest.java
Modified:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/META-INF/MANIFEST.MF
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java
Log:
Test case of running archives from outside of eclipse (in this case via a launch config)
Modified: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/META-INF/MANIFEST.MF 2008-10-24 18:37:48 UTC (rev 11178)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/META-INF/MANIFEST.MF 2008-10-25 10:41:15 UTC (rev 11179)
@@ -10,7 +10,11 @@
org.eclipse.core.resources,
org.jboss.tools.tests,
org.jboss.tools.common.test,
- org.eclipse.core.variables;bundle-version="3.2.100"
+ org.eclipse.core.variables;bundle-version="3.2.100",
+ org.eclipse.debug.core;bundle-version="3.4.0",
+ org.apache.ant;bundle-version="1.7.0",
+ org.eclipse.ant.ui;bundle-version="3.3.0",
+ org.eclipse.jdt.launching;bundle-version="3.4.0"
Eclipse-LazyStart: true
Bundle-ClassPath: archivestest.jar
Export-Package: org.jboss.ide.eclipse.archives.test,
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/ant/antTemplate.xml
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/ant/antTemplate.xml (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/ant/antTemplate.xml 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1,24 @@
+<project>
+ <property name="eclipse.home" location="${UNIT_TEST_ECLIPSE_LOC}" />
+ <property name="archives.home" location="${UNIT_TEST_ARCHIVES_HOME}"/>
+ <property name="example_variable" value="test" />
+
+ <path id="generate-archives-classpath">
+ <fileset dir="${eclipse.home}">
+ <include name="plugins/org.eclipse.equinox.common_*.jar" />
+ </fileset>
+ <fileset dir="${archives.home}">
+ <include
+ name="plugins/org.jboss.ide.eclipse.archives.core**/archivescore.jar" />
+ <include name="plugins/org.jboss.ide.eclipse.archives.core**/lib/*.jar" />
+ </fileset>
+ </path>
+
+ <taskdef name="generate-archives" classpathref="generate-archives-classpath"
+ classname="org.jboss.ide.eclipse.archives.core.ant.GenerateArchivesTask" />
+
+ <target name="run-packaging">
+ <property name="${UNIT_TEST_PROJECT_NAME}.dir" value="${UNIT_TEST_PROJECT_DIR}" />
+ <generate-archives projectPath="${${UNIT_TEST_PROJECT_NAME}.dir}" />
+ </target>
+</project>
\ No newline at end of file
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.classpath
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.classpath (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.classpath 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.packages
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.packages (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.packages 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packages version="1.2">
+ <package name="SimpleAntTest.jar" type="jar" todir="output" exploded="false" inWorkspace="false">
+ <fileset dir="" includes="**" excludes="**/*jar" inWorkspace="true" flatten="false">
+ <properties></properties>
+ </fileset>
+ <properties>
+ <property name="org.jboss.ide.eclipse.as.core.packages.ModuleIDPropertyKey" value="1224926072579"></property>
+ </properties>
+ </package>
+ <properties></properties>
+</packages>
\ No newline at end of file
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.project
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.project (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/.project 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>SimpleAntTest</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.jboss.ide.eclipse.archives.core.archivesBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.jboss.ide.eclipse.archives.core.archivesNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/src/Text
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/src/Text (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/inputs/projects/SimpleAntTest/src/Text 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1 @@
+this is a text file
\ No newline at end of file
Modified: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java 2008-10-24 18:37:48 UTC (rev 11178)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ArchivesTestSuite.java 2008-10-25 10:41:15 UTC (rev 11179)
@@ -4,6 +4,7 @@
import junit.framework.TestSuite;
import org.jboss.ide.eclipse.archives.test.core.ArchivesCoreTest;
+import org.jboss.ide.eclipse.archives.test.core.ant.SimpleAntTest;
import org.jboss.ide.eclipse.archives.test.model.ModelCreationTest;
import org.jboss.ide.eclipse.archives.test.model.ModelTruezipBridgeTest;
import org.jboss.ide.eclipse.archives.test.model.ModelUtilTest;
@@ -27,7 +28,8 @@
suite.addTestSuite(ModelUtilTest.class);
suite.addTestSuite(ModelCreationTest.class);
suite.addTestSuite(ModelTruezipBridgeTest.class);
-
+ suite.addTestSuite(SimpleAntTest.class);
+
// jiras
suite.addTestSuite(JBIDE1406Test.class);
suite.addTestSuite(JBIDE2099Test.class);
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/TranslationTest.java
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/TranslationTest.java (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/TranslationTest.java 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1,40 @@
+package org.jboss.ide.eclipse.archives.test.core;
+
+import junit.framework.TestCase;
+
+import org.jboss.ide.eclipse.archives.core.ArchivesCore;
+import org.jboss.ide.eclipse.archives.core.ArchivesCoreMessages;
+import org.jboss.ide.eclipse.archives.core.WorkspaceArchivesCore;
+import org.jboss.ide.eclipse.archives.core.ant.AntArchivesCore;
+
+public class TranslationTest extends TestCase {
+ private static WorkspaceArchivesCore workspaceCore;
+ private static AntArchivesCore antCore;
+
+ public void testArchivesCore() {
+ ArchivesCore core = ArchivesCore.getInstance();
+ assertEquals(ArchivesCore.WORKSPACE, core.getRunType());
+ assertEquals(WorkspaceArchivesCore.class, core.getClass());
+ workspaceCore = (WorkspaceArchivesCore)core;
+
+ assertNotNull(ArchivesCoreMessages.RefreshProjectFailed);
+ String workspaceBind = ArchivesCore.bind(ArchivesCoreMessages.RefreshProjectFailed, "Test");
+ assertNotNull(workspaceBind);
+
+ AntArchivesCore core2 = new AntArchivesCore();
+ ArchivesCore.setInstance(core2);
+ assertEquals(ArchivesCore.STANDALONE, ArchivesCore.getInstance().getRunType());
+ antCore = core2;
+
+ String antBind = ArchivesCore.bind(ArchivesCoreMessages.RefreshProjectFailed, "Test");
+ assertNotNull(antBind);
+ assertEquals(workspaceBind, antBind);
+ ArchivesCore.setInstance(core);
+
+ }
+
+ public void testAntStartup() {
+ // TODO Test to make sure a launch config starting with ant can also bind such strings
+ // SEE JMX CODE for example
+ }
+}
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/AntLauncher.java
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/AntLauncher.java (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/AntLauncher.java 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1,164 @@
+package org.jboss.ide.eclipse.archives.test.core.ant;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import junit.framework.Assert;
+
+import org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchShortcut;
+import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.IStreamListener;
+import org.eclipse.debug.core.model.IProcess;
+import org.eclipse.debug.core.model.IStreamMonitor;
+import org.jboss.ide.eclipse.archives.test.ArchivesTest;
+import org.jboss.ide.eclipse.archives.test.util.FileIOUtil;
+import org.osgi.framework.Bundle;
+
+public class AntLauncher {
+ protected String projectName;
+ protected String fileName;
+ protected String target;
+ protected IFile antFile;
+ protected IProject project;
+ protected ILaunch launch;
+ protected ILaunchConfiguration configuration;
+ protected IProcessListener listener;
+
+ public interface IProcessListener {
+ public void out(String text);
+ public void err(String text);
+ }
+
+ public AntLauncher(String projectName, String fileName, String target) {
+ this.projectName = projectName;
+ this.fileName = fileName;
+ this.target = target;
+ }
+
+ protected void createProjectData(IPath template, HashMap<String, String> replacements) throws CoreException {
+ try {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ project = root.getProject(projectName);
+ if( project.exists() )
+ fail("project already exists");
+
+ project.create(new NullProgressMonitor());
+ if( !project.exists() )
+ fail("project not created");
+
+ project.open(new NullProgressMonitor());
+ if( !project.isOpen() )
+ fail("project is not open");
+
+ antFile = project.getFile(fileName);
+ if( antFile.exists())
+ fail("build file already exists");
+
+ String s = getBuildXmlContents(template, replacements);
+ InputStream is = new ByteArrayInputStream(s.getBytes("UTF-8"));
+ antFile.create(is, true, new NullProgressMonitor());
+ } catch(CoreException ce ) {
+ ce.printStackTrace();
+ fail(ce.getMessage());
+ } catch( UnsupportedEncodingException uee) {
+ uee.printStackTrace();
+ fail(uee.getMessage());
+ } catch( IOException ioe) {
+ ioe.printStackTrace();
+ fail(ioe.getMessage());
+ }
+ }
+
+ public void deleteProject() throws CoreException {
+ project.delete(true, new NullProgressMonitor());
+ }
+
+ protected void launch() throws CoreException {
+ try {
+ ILaunchConfiguration config = getLaunchConfiguration(antFile.getFullPath(), project, "run", target);
+ launch = config.launch("run", new NullProgressMonitor());
+ IProcess[] processes = launch.getProcesses();
+ Assert.assertNotNull(processes);
+ Assert.assertTrue(processes.length == 1);
+
+ processes[0].getStreamsProxy().getOutputStreamMonitor().addListener(
+ new IStreamListener() {
+ public void streamAppended(String text,
+ IStreamMonitor monitor) {
+ if( listener != null )
+ listener.out(text);
+ }
+ });
+ processes[0].getStreamsProxy().getErrorStreamMonitor().addListener(
+ new IStreamListener() {
+ public void streamAppended(String text,
+ IStreamMonitor monitor) {
+ if( listener != null )
+ listener.err(text);
+ }
+ });
+ } catch( CoreException ce ) {
+ ce.printStackTrace();
+ fail(ce.getMessage());
+ }
+ }
+
+ private String getBuildXmlContents(IPath template, HashMap<String, String> map) throws IOException {
+ Bundle bundle = ArchivesTest.getDefault().getBundle();
+ URL bundleURL = FileLocator.toFileURL(bundle.getEntry(""));
+ IPath bundlePath = new Path(bundleURL.getFile());
+ IPath templateFile = bundlePath.append(template);
+ String result = FileIOUtil.getFileContents(templateFile.toFile());
+ String key, val;
+ if( result != null ) {
+ Iterator<String> i = map.keySet().iterator();
+ while(i.hasNext()) {
+ key = i.next();
+ val = map.get(key);
+ while(result.indexOf(key) != -1)
+ result = result.replace(key, val);
+ }
+ }
+
+ return result;
+ }
+
+ private ILaunchConfiguration getLaunchConfiguration(IPath filePath, IProject project, String mode, String targetAttribute) throws CoreException {
+ ILaunchConfiguration configuration = null;
+ configuration = AntLaunchShortcut.createDefaultLaunchConfiguration(filePath, (project != null && project.exists() ? project : null));
+ try {
+ if (targetAttribute != null && ! targetAttribute.equals(configuration.getAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_TARGETS, ""))) { //$NON-NLS-1$
+ ILaunchConfigurationWorkingCopy copy = configuration.getWorkingCopy();
+ copy.setAttribute(IAntLaunchConfigurationConstants.ATTR_ANT_TARGETS, targetAttribute);
+ copy.doSave();
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ fail(exception.getMessage());
+ }
+ return configuration;
+ }
+
+ private void fail(String msg) throws CoreException {
+ Assert.fail(msg);
+ }
+}
Added: trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/SimpleAntTest.java
===================================================================
--- trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/SimpleAntTest.java (rev 0)
+++ trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/core/ant/SimpleAntTest.java 2008-10-25 10:41:15 UTC (rev 11179)
@@ -0,0 +1,113 @@
+package org.jboss.ide.eclipse.archives.test.core.ant;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.HashMap;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.jboss.ide.eclipse.archives.test.ArchivesTest;
+import org.jboss.ide.eclipse.archives.test.core.ant.AntLauncher.IProcessListener;
+import org.osgi.framework.Bundle;
+
+public class SimpleAntTest extends TestCase implements IProcessListener {
+ protected static final String ECLIPSE_LOC = "${UNIT_TEST_ECLIPSE_LOC}";
+ protected static final String ARCHIVES_HOME = "${UNIT_TEST_ARCHIVES_HOME}";
+ protected static final String PROJECT_NAME = "${UNIT_TEST_PROJECT_NAME}";
+ protected static final String PROJECT_DIR = "${UNIT_TEST_PROJECT_DIR}";
+
+ // if running from runtime workbench, set this to true. otherwise its running in a full build
+ private final static boolean RUNTIME_WORKBENCH = false;
+
+ // if running via runtime workbench, the archives core plugin should be exported somewhere
+ // so that its jars can be picked up by the ant launch
+ private final static String PLUGIN_LOCATION="/home/rob/tmp/plugins";
+ private AntLauncher launcher;
+ private IPath outputFolder;
+ private boolean done = false;
+ private boolean success = false;
+ private String errorString = "";
+ public void setUp() {
+ try {
+ launcher = new AntLauncher("AntTest", "build.xml", "run-packaging");
+ launcher.listener = this;
+ IPath templatePath = new Path("inputs").append("ant").append("antTemplate.xml");
+ HashMap<String, String> map = new HashMap<String, String>();
+
+ Bundle bundle = ArchivesTest.getDefault().getBundle();
+ URL bundleURL = FileLocator.toFileURL(bundle.getEntry(""));
+ IPath bundlePath = new Path(bundleURL.getFile());
+ IPath projectLoc = bundlePath.append(new Path("inputs").append("projects").append("SimpleAntTest"));
+ outputFolder = projectLoc.append("output");
+
+ String eclipseHome = new File(new URL(System.getProperty("eclipse.home.location")).toURI()).getAbsolutePath();
+
+ map.put(ECLIPSE_LOC, eclipseHome);
+ map.put(PROJECT_NAME, "SimpleAntTest");
+ map.put(ARCHIVES_HOME, RUNTIME_WORKBENCH ? PLUGIN_LOCATION : eclipseHome);
+ map.put(PROJECT_DIR, projectLoc.toOSString());
+ launcher.createProjectData(templatePath, map);
+ } catch( CoreException ce) {
+ fail(ce.getMessage());
+ } catch( IOException ioe) {
+ fail(ioe.getMessage());
+ } catch( URISyntaxException urise) {
+ fail(urise.getMessage());
+ }
+ }
+
+ public void tearDown() {
+ try {
+ launcher.deleteProject();
+ File[] children = outputFolder.toFile().listFiles();
+ if( children.length > 0 ) {
+ for( int i = 0; i < children.length; i++ )
+ children[i].delete();
+ }
+ } catch( CoreException ce ) {
+ }
+ }
+
+ public void testOne() {
+ try {
+ assertTrue(outputFolder.toFile().list().length == 0);
+ launcher.launch();
+ } catch( CoreException ce) {
+ fail(ce.getMessage());
+ }
+
+ int maxWait = 60*1000; // max wait 60s
+ int waited = 0;
+ while( !done && waited < maxWait ) {
+ try {
+ Thread.currentThread().sleep(500);
+ } catch( InterruptedException ie) {}
+ waited += 500;
+ }
+
+ if( !done || !success )
+ fail("The ant task did not successfully complete. " + errorString);
+
+ assertTrue(outputFolder.toFile().list().length == 1);
+ File out = outputFolder.toFile().listFiles()[0];
+ assertTrue(out.exists());
+
+ }
+ public void out(String text) {
+ if( "BUILD SUCCESSFUL\n".equals(text))
+ done = success = true;
+ }
+ public void err(String text) {
+ if( "BUILD FAILED\n".equals(text)) {
+ success = false;
+ done = true;
+ }
+ errorString += text + "\n";
+ }
+}
17 years, 5 months