JBoss Tools SVN: r15387 - trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2009-05-21 09:49:14 -0400 (Thu, 21 May 2009)
New Revision: 15387
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4351
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java 2009-05-21 13:01:20 UTC (rev 15386)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java 2009-05-21 13:49:14 UTC (rev 15387)
@@ -638,7 +638,7 @@
assertEquals("Not all problem markers 'Duplicate variable name' was found", 2, messages.length);
- for(int i=0;i<4;i++)
+ for(int i=0;i<2;i++)
assertEquals("Problem marker 'Duplicate factory name' not found", "Duplicate factory name: \"messageList\"", messages[i]);
int[] lineNumbers = getMarkersNumbersOfLine(contextVariableTestFile);
15 years, 4 months
JBoss Tools SVN: r15386 - trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/WEB-INF.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2009-05-21 09:01:20 -0400 (Thu, 21 May 2009)
New Revision: 15386
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/WEB-INF/components.xml
Log:
https://jira.jboss.org/jira/browse/JBIDE-4351
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/WEB-INF/components.xml
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/WEB-INF/components.xml 2009-05-21 10:29:12 UTC (rev 15385)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/WEB-INF/components.xml 2009-05-21 13:01:20 UTC (rev 15386)
@@ -52,7 +52,7 @@
<core:pageflow-definitions></core:pageflow-definitions>
</core:jbpm>
-->
- <component class="org.domain.renamecomponentwartestproject.session.TestComponent" name="test" />
+ <component class="org.domain.SeamWebWarTestProject.session.TestComponent" name="test" />
<factory name="test" />
15 years, 4 months
JBoss Tools SVN: r15385 - in trunk/smooks/plugins/org.jboss.tools.smooks.ui: src/org/jboss/tools/smooks/configuration/editors and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2009-05-21 06:29:12 -0400 (Thu, 21 May 2009)
New Revision: 15385
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/jboss_about.png
Removed:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/jboss_about.png
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
Log:
JBIDE-4280
I replace the about icon.
Deleted: trunk/smooks/plugins/org.jboss.tools.smooks.ui/jboss_about.png
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/jboss_about.png 2009-05-21 08:54:20 UTC (rev 15384)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/jboss_about.png 2009-05-21 10:29:12 UTC (rev 15385)
@@ -1,9 +0,0 @@
-�PNG
-
-
-IHDR
-a+d(^*ga%e"d`1^54W=
-k4m"n*@[Ck("g5*d<GU�s !j-5bDn1q&o+s/.j;3k6mS�vS�rT�oW�mW�uV�nY�6rET�p[�sX�sZ�|U�m\�wV�f`�rX�EoQvZ�wX�Hh�l`�t\�|Y�v[�oa�yZ�q`�s\�{[�s^�w\�q^�p_�Wi�tb�Nk�[h�rd��\�ud�Sl�]k�Zj��^�ya�zb�~b�wc�`�yd�Wm�cm�Yl�~b�bl�wh�Qp�Tn�}f�4�PSp�Vr�zh�fq�\r�Yr�_q�Ts�\q�cq�Su�V|`aq��h�L�YXt�^s�du��h�}n�kt�Zx�_x��q�ix�S�bg{�rz�g{��qr��v�n~��}�g�oz��}�����]�p���x���ɚ��l�{���������������u��������������}�����r�y��Ŗ����˩�ս�ͭ����ϐ����ċ����ڷ�˹�ݡ����Ӧ��Ūۉȕ�ġ���ß��ӡĪ���Ŷ�Ƹ���Ȼ�Ǿ�̿���գҭ���������ý������ݽ������������������������������̽������������������������������������������������������������������������������������������������������������������������������_��
-������hf��q��*C�2�����cn��j_�*@x<�\�1>�ǹy-�ڇ�
-"O!��
-��<��N+5��S�hࢠ����Q����hh�y�<I}�7�z૨��~�N<���5R�aD.�q�Vf��Lh��:�c��p�{0_��w2*k�5?% �e���Ao��P�*�w/Kŭ
\ No newline at end of file
Added: trunk/smooks/plugins/org.jboss.tools.smooks.ui/jboss_about.png
===================================================================
(Binary files differ)
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.ui/jboss_about.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-05-21 08:54:20 UTC (rev 15384)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-05-21 10:29:12 UTC (rev 15385)
@@ -37,11 +37,8 @@
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.emf.ecore.xmi.impl.DefaultDOMHandlerImpl;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.DeleteCommand;
import org.eclipse.emf.edit.command.SetCommand;
@@ -87,7 +84,6 @@
import org.jboss.tools.smooks.model.smooks.provider.SmooksItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.xsl.provider.XslItemProviderAdapterFactory;
import org.jboss.tools.smooks10.model.smooks.util.SmooksResourceFactoryImpl;
-import org.w3c.dom.Node;
/**
*
@@ -119,7 +115,7 @@
private List<Diagnostic> diagnosticList;
- private Object smooksDOMModel;
+// private Object smooksDOMModel;
public SmooksMultiFormEditor() {
super();
@@ -427,17 +423,7 @@
validator = new SmooksModelValidator();
addValidateListener(this);
setDiagnosticList(validator.validate(smooksModel.eResource().getContents(), editingDomain));
-// ((XMLResource)smooksResource).save(null, Collections.emptyMap(), new DefaultDOMHandlerImpl(){
-//
-// /* (non-Javadoc)
-// * @see org.eclipse.emf.ecore.xmi.DOMHandler#recordValues(org.w3c.dom.Node, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object)
-// */
-// public void recordValues(Node node, EObject container, EStructuralFeature feature, Object value) {
-// super.recordValues(node, container, feature, value);
-// System.out.println(value + ":" + node);
-// }
-//
-// });
+
// if success to open editor , check if there isn't ext file and create
// a new one
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-05-21 08:54:20 UTC (rev 15384)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-05-21 10:29:12 UTC (rev 15385)
@@ -152,6 +152,10 @@
public static FieldMarkerWrapper createFieldEditorLabel(String labelText, Composite parent,
FormToolkit formToolKit, IItemPropertyDescriptor itemPropertyDescriptor, Object model, boolean isLink) {
FieldMarkerWrapper wrapper = new FieldMarkerWrapper();
+ String description = labelText;
+ if (itemPropertyDescriptor != null) {
+ description = itemPropertyDescriptor.getDescription(model);
+ }
String displayName = labelText;
if (itemPropertyDescriptor == null) {
} else {
@@ -181,6 +185,9 @@
Hyperlink link = formToolKit.createHyperlink(labelComposite, displayName + " :", SWT.NONE);
labelControl = link;
}
+ if (description != null) {
+ labelControl.setToolTipText(description);
+ }
// gd = new GridData();
// labelControl.setLayoutData(gd);
15 years, 4 months
JBoss Tools SVN: r15384 - trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2009-05-21 04:54:20 -0400 (Thu, 21 May 2009)
New Revision: 15384
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-1077
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java 2009-05-21 08:45:34 UTC (rev 15383)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamComponentRefactoringTest.java 2009-05-21 08:54:20 UTC (rev 15384)
@@ -8,6 +8,8 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.ltk.core.refactoring.Change;
+import org.eclipse.ltk.core.refactoring.CompositeChange;
+import org.eclipse.ltk.core.refactoring.TextFileChange;
import org.jboss.tools.common.util.FileUtil;
import org.jboss.tools.seam.core.ISeamComponent;
import org.jboss.tools.seam.core.ISeamProject;
@@ -122,12 +124,16 @@
content = FileUtil.readStream(file.getContents());
assertNotSame(changeStructure.getText(), content.substring(changeStructure.getOffset(), changeStructure.getOffset()+changeStructure.getLength()));
}
+
+ if(component.getJavaDeclaration() == null)
+ fail("Component 'test' does not have java declaration");
// Rename Seam Component
RenameComponentProcessor processor = new RenameComponentProcessor(component);
processor.setNewComponentName(newName);
- Change change = processor.createChange(new NullProgressMonitor());
- change.perform(new NullProgressMonitor());
+ CompositeChange rootChange = (CompositeChange)processor.createChange(new NullProgressMonitor());
+
+ rootChange.perform(new NullProgressMonitor());
JobUtils.waitForIdle();
// Test results
15 years, 4 months
JBoss Tools SVN: r15383 - trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/classpath.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2009-05-21 04:45:34 -0400 (Thu, 21 May 2009)
New Revision: 15383
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/classpath/ProjectRuntimeTest.java
Log:
Project GreenBuild - JBIDE-4339
Modified: trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/classpath/ProjectRuntimeTest.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/classpath/ProjectRuntimeTest.java 2009-05-21 08:07:55 UTC (rev 15382)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.test/src/org/jboss/ide/eclipse/as/test/classpath/ProjectRuntimeTest.java 2009-05-21 08:45:34 UTC (rev 15383)
@@ -77,10 +77,13 @@
protected void verifyPostRuntimeCPE(IJavaProject jp) throws CoreException {
IClasspathEntry[] entries = jp.getRawClasspath();
- assertEquals(3, entries.length);
+ assertEquals(4, entries.length);
jp.getResolvedClasspath(false); // make sure it can resolve all
- String[] required = new String[] { "org.eclipse.jst.server.core.container",
- "basicwebproject", "org.eclipse.jst.j2ee.internal.web.container" };
+ String[] required = new String[] {
+ "org.eclipse.jst.server.core.container",
+ "basicwebproject",
+ "org.eclipse.jst.j2ee.internal.web.container",
+ "org.eclipse.jdt.launching.JRE_CONTAINER"};
verifyClasspathEntries(entries, required);
}
15 years, 4 months
JBoss Tools SVN: r15382 - trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2009-05-21 04:07:55 -0400 (Thu, 21 May 2009)
New Revision: 15382
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
Log:
small diff against hte initia
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml 2009-05-21 07:45:30 UTC (rev 15381)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml 2009-05-21 08:07:55 UTC (rev 15382)
@@ -10,7 +10,7 @@
objectClass="org.eclipse.core.resources.IProject"
name="JEE Module Dependencies (JBT Beta)"
class="org.jboss.ide.eclipse.as.wtp.override.ui.properypage.J2EEDependenciesPage"
- id="org.eclipse.jst.j2ee.internal.J2EEDependenciesPage">
+ id="org.jboss.ide.eclipse.as.wtp.override.ui.J2EEDependenciesPage">
<enabledWhen>
<and>
<adapt
15 years, 4 months
JBoss Tools SVN: r15381 - trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2009-05-21 03:45:30 -0400 (Thu, 21 May 2009)
New Revision: 15381
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
Log:
hrmm... a cha is the initial now
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml 2009-05-21 07:37:41 UTC (rev 15380)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml 2009-05-21 07:45:30 UTC (rev 15381)
@@ -9,7 +9,7 @@
adaptable="true"
objectClass="org.eclipse.core.resources.IProject"
name="JEE Module Dependencies (JBT Beta)"
- class="org.jboss.ide.eclipse.as.wtp.override.ui.properypage.J2EEDependenciesPageClone"
+ class="org.jboss.ide.eclipse.as.wtp.override.ui.properypage.J2EEDependenciesPage"
id="org.eclipse.jst.j2ee.internal.J2EEDependenciesPage">
<enabledWhen>
<and>
15 years, 4 months
JBoss Tools SVN: r15380 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2009-05-21 03:37:41 -0400 (Thu, 21 May 2009)
New Revision: 15380
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/RenameComponentProcessor.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-1077
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/RenameComponentProcessor.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/RenameComponentProcessor.java 2009-05-21 07:24:49 UTC (rev 15379)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/refactoring/RenameComponentProcessor.java 2009-05-21 07:37:41 UTC (rev 15380)
@@ -160,6 +160,9 @@
files.clear();
findDeclarations(component, true);
+ if(declarationFile == null)
+ return;
+
projectsSet = new SeamProjectsSet(declarationFile.getProject());
IProject[] projects = projectsSet.getAllProjects();
@@ -431,6 +434,9 @@
}
private void findAnnotations(){
+ if(declarationFile == null)
+ return;
+
ISeamProject seamProject = SeamCorePlugin.getSeamProject(declarationFile.getProject(), true);
files.clear();
findAnnotations(seamProject, true);
15 years, 4 months
JBoss Tools SVN: r15379 - in trunk/as/plugins: org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs and 13 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2009-05-21 03:24:49 -0400 (Thu, 21 May 2009)
New Revision: 15379
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.classpath
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.project
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.settings/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.settings/org.eclipse.jdt.core.prefs
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/build.properties
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/WTPOveridePlugin.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AddModulestoEARPropertiesPageClone.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AvailableJ2EEComponentsForEARContentProviderClone.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/J2EEDependenciesPageClone.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java
Log:
Initial revision of a working clone of the upstream code. This will allow all difs to be taken from against this revision.
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java 2009-05-21 05:43:30 UTC (rev 15378)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java 2009-05-21 07:24:49 UTC (rev 15379)
@@ -28,8 +28,6 @@
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
-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;
@@ -40,6 +38,7 @@
import org.eclipse.swt.widgets.Text;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import org.jboss.ide.eclipse.as.ui.Messages;
+import org.jboss.ide.eclipse.as.ui.UIUtil;
/**
* @author rob.stryker <rob.stryker(a)redhat.com>
@@ -78,12 +77,13 @@
passText.setEditable(true);
final Button saveCredentials = new Button(main, SWT.CHECK);
- top.setLayoutData(createFormData(0,5,null,0,0,5,100,-5));
- userLabel.setLayoutData(createFormData(top, 10, null, 0, 0,5, 100, -5));
- userText.setLayoutData(createFormData(userLabel, 5, null, 0, 0,5, 100, -5));
- passLabel.setLayoutData(createFormData(userText, 10, null, 0, 0,5, 100, -5));
- passText.setLayoutData(createFormData(passLabel, 5, null, 0, 0,5, 100, -5));
- saveCredentials.setLayoutData(createFormData(passText, 10, null, 0, 0,5, 100, -5));
+ UIUtil u = new UIUtil();
+ top.setLayoutData(u.createFormData(0,5,null,0,0,5,100,-5));
+ userLabel.setLayoutData(u.createFormData(top, 10, null, 0, 0,5, 100, -5));
+ userText.setLayoutData(u.createFormData(userLabel, 5, null, 0, 0,5, 100, -5));
+ passLabel.setLayoutData(u.createFormData(userText, 10, null, 0, 0,5, 100, -5));
+ passText.setLayoutData(u.createFormData(passLabel, 5, null, 0, 0,5, 100, -5));
+ saveCredentials.setLayoutData(u.createFormData(passText, 10, null, 0, 0,5, 100, -5));
top.setText(Messages.credentials_warning);
userLabel.setText(Messages.swf_Username);
@@ -127,33 +127,6 @@
createButton(parent, IDialogConstants.CANCEL_ID, "Ignore", false);
}
-
- private FormData createFormData(Object topStart, int topOffset, Object bottomStart, int bottomOffset,
- Object leftStart, int leftOffset, Object rightStart, int rightOffset) {
- FormData data = new FormData();
-
- if( topStart != null ) {
- data.top = topStart instanceof Control ? new FormAttachment((Control)topStart, topOffset) :
- new FormAttachment(((Integer)topStart).intValue(), topOffset);
- }
-
- if( bottomStart != null ) {
- data.bottom = bottomStart instanceof Control ? new FormAttachment((Control)bottomStart, bottomOffset) :
- new FormAttachment(((Integer)bottomStart).intValue(), bottomOffset);
- }
-
- if( leftStart != null ) {
- data.left = leftStart instanceof Control ? new FormAttachment((Control)leftStart, leftOffset) :
- new FormAttachment(((Integer)leftStart).intValue(), leftOffset);
- }
-
- if( rightStart != null ) {
- data.right = rightStart instanceof Control ? new FormAttachment((Control)rightStart, rightOffset) :
- new FormAttachment(((Integer)rightStart).intValue(), rightOffset);
- }
-
- return data;
- }
/**
* @return the user
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.classpath
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.classpath (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.classpath 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.project
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.project (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.project 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.ide.eclipse.as.wtp.override.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/.settings/org.eclipse.jdt.core.prefs 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,8 @@
+#Thu May 21 13:59:37 PDT 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/META-INF/MANIFEST.MF 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: WTP UI Overrides
+Bundle-SymbolicName: org.jboss.ide.eclipse.as.wtp.override.ui;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.jboss.ide.eclipse.as.wtp.override.WTPOveridePlugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.wst.common.modulecore;bundle-version="1.1.300",
+ org.eclipse.jst.j2ee;bundle-version="1.1.300",
+ org.eclipse.jst.j2ee.core;bundle-version="1.1.300",
+ org.eclipse.jst.j2ee.ui;bundle-version="1.1.300",
+ org.eclipse.wst.common.core;bundle-version="1.1.201",
+ org.eclipse.wst.common.frameworks;bundle-version="1.1.300",
+ org.eclipse.wst.common.frameworks.ui;bundle-version="1.1.300",
+ org.eclipse.jst.common.frameworks;bundle-version="1.1.300",
+ org.eclipse.wst.common.project.facet.core;bundle-version="1.4.0",
+ org.eclipse.jdt;bundle-version="3.5.0",
+ org.eclipse.jdt.core;bundle-version="3.5.0",
+ org.eclipse.jem.util;bundle-version="2.0.200",
+ org.eclipse.jst.jee;bundle-version="1.0.200",
+ org.eclipse.jdt.ui;bundle-version="3.5.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/build.properties
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/build.properties (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/build.properties 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/plugin.xml 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension point="org.eclipse.ui.propertyPages">
+
+
+<!-- =========== org.eclipse.jst.j2ee.internal.J2EEDependencyPage ============ -->
+ <page
+ adaptable="true"
+ objectClass="org.eclipse.core.resources.IProject"
+ name="JEE Module Dependencies (JBT Beta)"
+ class="org.jboss.ide.eclipse.as.wtp.override.ui.properypage.J2EEDependenciesPageClone"
+ id="org.eclipse.jst.j2ee.internal.J2EEDependenciesPage">
+ <enabledWhen>
+ <and>
+ <adapt
+ type="org.eclipse.core.resources.IProject">
+ <or>
+ <test forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jst.web" />
+ <test forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jst.ejb" />
+ <test forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jst.utility" />
+ <test forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jst.ear" />
+ <test forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jst.appclient" />
+ <test forcePluginActivation="true"
+ property="org.eclipse.wst.common.project.facet.core.projectFacet"
+ value="jst.connector" />
+ </or>
+ </adapt>
+ </and>
+ </enabledWhen>
+ </page>
+ </extension>
+</plugin>
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/WTPOveridePlugin.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/WTPOveridePlugin.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/WTPOveridePlugin.java 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,61 @@
+package org.jboss.ide.eclipse.as.wtp.override;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class WTPOveridePlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.ide.eclipse.as.wtp.override.ui";
+
+ // The shared instance
+ private static WTPOveridePlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public WTPOveridePlugin() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static WTPOveridePlugin getDefault() {
+ return plugin;
+ }
+
+ public static void log(Exception e) {
+ log(e.getMessage(), e);
+ }
+
+ public static void log(String message, Exception e) {
+ IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, message, e);
+ getDefault().getLog().log(status);
+ }
+
+}
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AddModulestoEARPropertiesPageClone.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AddModulestoEARPropertiesPageClone.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AddModulestoEARPropertiesPageClone.java 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,1259 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ * IBM Corporation - initial API and implementation
+ * David Schneider, david.schneider(a)unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
+ * Stefan Dimov, stefan.dimov(a)sap.com - bugs 207826, 222651
+ *******************************************************************************/
+package org.jboss.ide.eclipse.as.wtp.override.ui.properypage;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
+import org.eclipse.jst.j2ee.application.internal.operations.RemoveComponentFromEnterpriseApplicationDataModelProvider;
+import org.eclipse.jst.j2ee.classpathdep.ClasspathDependencyUtil;
+import org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualArchiveComponent;
+import org.eclipse.jst.j2ee.internal.AvailableJ2EEComponentsForEARContentProvider;
+import org.eclipse.jst.j2ee.internal.ICommonManifestUIConstants;
+import org.eclipse.jst.j2ee.internal.J2EEConstants;
+import org.eclipse.jst.j2ee.internal.J2EEDependenciesPage;
+import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.j2ee.internal.ManifestUIResourceHandler;
+import org.eclipse.jst.j2ee.internal.SecondCheckBoxStateChangedEvent;
+import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
+import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater;
+import org.eclipse.jst.j2ee.internal.dialogs.ChangeLibDirDialog;
+import org.eclipse.jst.j2ee.internal.dialogs.DependencyConflictResolveDialog;
+import org.eclipse.jst.j2ee.internal.plugin.IJ2EEModuleConstants;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
+import org.eclipse.jst.j2ee.internal.ui.DoubleCheckboxTableItem;
+import org.eclipse.jst.j2ee.internal.ui.DoubleCheckboxTableViewer;
+import org.eclipse.jst.j2ee.model.IEARModelProvider;
+import org.eclipse.jst.j2ee.model.ModelProviderManager;
+import org.eclipse.jst.j2ee.project.EarUtilities;
+import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.jst.j2ee.project.facet.EarFacetRuntimeHandler;
+import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
+import org.eclipse.jst.j2ee.project.facet.IJavaProjectMigrationDataModelProperties;
+import org.eclipse.jst.j2ee.project.facet.JavaProjectMigrationDataModelProvider;
+import org.eclipse.jst.javaee.application.Application;
+import org.eclipse.jst.jee.project.facet.EarCreateDeploymentFilesDataModelProvider;
+import org.eclipse.jst.jee.project.facet.ICreateDeploymentFilesDataModelProperties;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+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.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
+import org.eclipse.wst.common.componentcore.internal.operation.CreateReferenceComponentsDataModelProvider;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+
+
+public class AddModulestoEARPropertiesPageClone implements /*IJ2EEDependenciesControl,*/ ICommonManifestUIConstants, Listener {
+
+ protected final String PATH_SEPARATOR = String.valueOf(IPath.SEPARATOR);//AvailableJ2EEComponentsForEARContentProvider.PATH_SEPARATOR;
+ protected final IProject project;
+ protected final J2EEDependenciesPage propPage;
+ protected IVirtualComponent earComponent = null;
+ protected Text componentNameText;
+ protected Label availableModules;
+ protected CheckboxTableViewer availableComponentsViewer;
+ protected Button selectAllButton;
+ protected Button deselectAllButton;
+ protected Button projectJarButton;
+ protected Button externalJarButton;
+ protected Button addVariableButton;
+ protected Button changeLibPathButton;
+ protected Composite buttonColumn;
+
+ protected String libDir = null;
+ protected String oldLibDir;
+ protected List j2eeComponentList = new ArrayList();
+ protected List javaProjectsList = new ArrayList();
+ protected List j2eeLibElementList = new ArrayList();
+ protected List javaLibProjectsList = new ArrayList();
+ protected static final IStatus OK_STATUS = IDataModelProvider.OK_STATUS;
+ protected boolean isVersion5;
+ protected Set libsToUncheck;
+ protected Listener tableListener;
+ protected Listener labelListener;
+
+ //[Bug 238264] the cached list of jars selected using 'add jar' or 'add external jars'
+ protected List<IVirtualComponent> addedJARComponents = new ArrayList<IVirtualComponent>();
+
+
+ /**
+ * Constructor for AddModulestoEARPropertiesControl.
+ */
+ public AddModulestoEARPropertiesPageClone(final IProject project, final J2EEDependenciesPage page) {
+ this.project = project;
+ this.propPage = page;
+ earComponent = ComponentCore.createComponent(project);
+ boolean hasEE5Facet = false;
+ try {
+ IFacetedProject facetedProject = ProjectFacetsManager.create(project);
+ if(facetedProject != null){
+ IProjectFacetVersion facetVersion = facetedProject.getProjectFacetVersion(EarUtilities.ENTERPRISE_APPLICATION_FACET);
+ if(facetVersion.equals(EarUtilities.ENTERPRISE_APPLICATION_50)){
+ hasEE5Facet = true;
+ }
+ }
+ } catch (CoreException e) {
+ J2EEUIPlugin.logError(e);
+ }
+
+ if(hasEE5Facet){
+ String earDDVersion = JavaEEProjectUtilities.getJ2EEDDProjectVersion(project);
+ if (earDDVersion.equals(J2EEVersionConstants.VERSION_5_0_TEXT)) {
+ isVersion5 = true;
+ Application app = (Application)ModelProviderManager.getModelProvider(project).getModelObject();
+ if (app != null)
+ oldLibDir = app.getLibraryDirectory();
+ if (oldLibDir == null) oldLibDir = J2EEConstants.EAR_DEFAULT_LIB_DIR;
+ libDir = oldLibDir;
+ }
+ }
+ libsToUncheck = new HashSet();
+ }
+
+ public Composite createContents(final Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginWidth = 0;
+ composite.setLayout(layout);
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+ J2EEDependenciesPageClone.createDescriptionComposite(composite, ManifestUIResourceHandler.EAR_Modules_Desc);
+ createListGroup(composite);
+ refresh();
+ Dialog.applyDialogFont(parent);
+ return composite;
+ }
+
+ protected void createListGroup(Composite parent) {
+ Composite listGroup = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ listGroup.setLayout(layout);
+ GridData gData = new GridData(GridData.FILL_BOTH);
+ gData.horizontalIndent = 5;
+ listGroup.setLayoutData(gData);
+
+ availableModules = new Label(listGroup, SWT.NONE);
+ gData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
+ availableModules.setText(J2EEUIMessages.getResourceString("AVAILABLE_J2EE_COMPONENTS")); //$NON-NLS-1$ = "Available dependent JARs:"
+ availableModules.setLayoutData(gData);
+ createTableComposite(listGroup);
+ }
+
+ public boolean performOk() {
+ NullProgressMonitor monitor = new NullProgressMonitor();
+ if (isVersion5) {
+ if (libDir.length() == 0) {
+
+ MessageDialog dlg = new MessageDialog(null,
+ J2EEUIMessages.getResourceString(J2EEUIMessages.BLANK_LIB_DIR),
+ null, J2EEUIMessages.getResourceString(J2EEUIMessages.BLANK_LIB_DIR_WARN_QUESTION),
+ MessageDialog.QUESTION, new String[] {J2EEUIMessages.YES_BUTTON,
+ J2EEUIMessages.NO_BUTTON,
+ J2EEUIMessages.CANCEL_BUTTON}, 1);
+ switch (dlg.open()) {
+ case 0: break;
+ case 1: {
+ handleChangeLibDirButton(false);
+ return false;
+ }
+ case 2: return false;
+ default: return false;
+ }
+ }
+ updateLibDir(monitor);
+ }
+ removeModulesFromEAR(monitor);
+ addModulesToEAR(monitor);
+ refresh();
+ return true;
+ }
+
+ public void performDefaults() {
+ }
+
+ public boolean performCancel() {
+ return true;
+ }
+
+ public void dispose() {
+ Table table = null;
+ if (availableComponentsViewer != null) {
+ table = availableComponentsViewer.getTable();
+ if (table == null)
+ return;
+ }
+ table.removeListener(SWT.Dispose, tableListener);
+ table.removeListener(SWT.KeyDown, tableListener);
+ table.removeListener(SWT.MouseMove, tableListener);
+ table.removeListener(SWT.MouseHover, tableListener);
+ }
+
+ public void setVisible(boolean visible) {
+ }
+
+ private List newJ2EEModulesToAdd(boolean inLibFolder){
+ if (inLibFolder && !isVersion5) return null;
+ List newComps = new ArrayList();
+ List comps = inLibFolder ? j2eeLibElementList : j2eeComponentList;
+ if (comps != null && !comps.isEmpty()){
+ for (int i = 0; i < comps.size(); i++){
+ IVirtualComponent handle = (IVirtualComponent)comps.get(i);
+ if (ClasspathDependencyUtil.isClasspathComponentDependency(handle)) {
+ continue;
+ }
+ if( !inEARAlready(handle))
+ newComps.add(handle);
+ }
+ }
+ return newComps;
+ }
+
+ private void updateLibDir(IProgressMonitor monitor) {
+ if (libDir.equals(oldLibDir)) return;
+ final IEARModelProvider earModel = (IEARModelProvider)ModelProviderManager.getModelProvider(project);
+ final Application app = (Application)ModelProviderManager.getModelProvider(project).getModelObject();
+ oldLibDir = app.getLibraryDirectory();
+ if (oldLibDir == null) oldLibDir = J2EEConstants.EAR_DEFAULT_LIB_DIR;
+ earModel.modify(new Runnable() {
+ public void run() {
+ app.setLibraryDirectory(libDir);
+ }}, null);
+ }
+
+ protected void createDD(IProgressMonitor monitor) {
+ if( earComponent != null ){
+ IDataModelOperation op = generateEARDDOperation();
+ try {
+ op.execute(monitor, null);
+ } catch (ExecutionException e) {
+ J2EEUIPlugin.logError(e);
+ }
+ }
+ }
+
+ private void execAddOp(IProgressMonitor monitor, List componentList, String path) throws CoreException {
+ if (componentList == null || componentList.isEmpty()) return;
+ IDataModel dm = DataModelFactory.createDataModel(new AddComponentToEnterpriseApplicationDataModelProvider());
+
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, earComponent);
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, componentList);
+
+ //[Bug 238264] the uri map needs to be manually set correctly
+ Map uriMap = new HashMap();
+ IVirtualComponent virtComp;
+ String virtCompURIMapName;
+ for(int i=0; i<componentList.size(); i++) {
+ virtComp = (IVirtualComponent)componentList.get(i);
+ virtCompURIMapName = getVirtualComponentNameWithExtension(virtComp);
+ uriMap.put(virtComp, virtCompURIMapName);
+ }
+ dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP, uriMap);
+
+ if (isVersion5) dm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, path);
+
+ IStatus stat = dm.validateProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+ if (stat != OK_STATUS)
+ throw new CoreException(stat);
+ try {
+ dm.getDefaultOperation().execute(monitor, null);
+ } catch (ExecutionException e) {
+ J2EEUIPlugin.logError(e);
+ }
+ }
+
+ private void execAddOp1(IProgressMonitor monitor, List jProjList, List j2eeCompList, String path)
+ throws CoreException {
+ if (!jProjList.isEmpty()) {
+ Set moduleProjects = new HashSet();
+ for (int i = 0; i < jProjList.size(); i++) {
+ try {
+ IProject proj = (IProject) jProjList.get(i);
+ moduleProjects.add(proj);
+ IDataModel migrationdm = DataModelFactory.createDataModel(new JavaProjectMigrationDataModelProvider());
+ migrationdm.setProperty(IJavaProjectMigrationDataModelProperties.PROJECT_NAME, proj.getName());
+ migrationdm.getDefaultOperation().execute(monitor, null);
+
+
+ IDataModel refdm = DataModelFactory.createDataModel(new CreateReferenceComponentsDataModelProvider());
+ List targetCompList = (List) refdm.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+
+ IVirtualComponent targetcomponent = ComponentCore.createComponent(proj);
+ targetCompList.add(targetcomponent);
+
+ refdm.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, earComponent);
+ refdm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, targetCompList);
+ if (isVersion5) refdm.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, path);
+
+
+ // referenced java projects should have archiveName attribute
+ ((Map)refdm.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_TO_URI_MAP)).put(targetcomponent, proj.getName().replace(' ', '_') + IJ2EEModuleConstants.JAR_EXT);
+
+ refdm.getDefaultOperation().execute(monitor, null);
+ j2eeCompList.add(targetcomponent);
+ } catch (ExecutionException e) {
+ J2EEUIPlugin.logError(e);
+ }
+ }
+ EarFacetRuntimeHandler.updateModuleProjectRuntime(earComponent.getProject(), moduleProjects, new NullProgressMonitor());
+ } // end
+
+ }
+
+ private IStatus addModulesToEAR(IProgressMonitor monitor) {
+ IStatus stat = OK_STATUS;
+ try {
+ if( earComponent != null ){
+ final List list = newJ2EEModulesToAdd(false);
+ final List bndList = newJ2EEModulesToAdd(true);
+ final boolean shouldRun = (list != null && !list.isEmpty()) || !javaProjectsList.isEmpty();
+ final boolean shouldBndRun = isVersion5 &&
+ ((bndList != null && !bndList.isEmpty()) || !javaLibProjectsList.isEmpty());
+ if(shouldRun || shouldBndRun){
+ IWorkspaceRunnable runnable = new IWorkspaceRunnable(){
+
+ public void run(IProgressMonitor monitor) throws CoreException{
+ if (shouldRun) {
+ execAddOp(monitor, list, J2EEConstants.EAR_ROOT_DIR);
+ execAddOp1(monitor, javaProjectsList, j2eeComponentList, J2EEConstants.EAR_ROOT_DIR);
+ }
+ if (shouldBndRun) {
+ execAddOp(monitor, bndList, libDir);
+ execAddOp1(monitor, javaLibProjectsList, j2eeLibElementList, libDir);
+ }
+ }
+ };
+ J2EEUIPlugin.getWorkspace().run(runnable, monitor);
+ }
+ }
+ } catch (Exception e) {
+ J2EEUIPlugin.logError(e);
+ }
+
+ //[Bug 238264] clear out the cache because they should all either be added as references now
+ // or no longer checked and therefore not wanted by the user
+ this.addedJARComponents.clear();
+
+ return OK_STATUS;
+ }
+
+ private void remComps(List list, String path) {
+ if( !list.isEmpty()){
+ try {
+ // remove the components from the EAR
+ IDataModelOperation op = removeComponentFromEAROperation(earComponent, list, path);
+ op.execute(null, null);
+ // if that succeeded, remove all EAR-scope J2EE dependencies on these components
+ J2EEComponentClasspathUpdater.getInstance().queueUpdateEAR(earComponent.getProject());
+ } catch (ExecutionException e) {
+ J2EEUIPlugin.logError(e);
+ }
+ }
+ }
+
+ private IStatus removeModulesFromEAR(IProgressMonitor monitor) {
+ IStatus stat = OK_STATUS;
+ if (!isVersion5) {
+ if(earComponent != null && j2eeComponentList != null) {
+ List list = getComponentsToRemove();
+ remComps(list, J2EEConstants.EAR_ROOT_DIR);
+ }
+ } else {
+ if( earComponent != null && j2eeComponentList != null) {
+ List[] list = getComponentsToRemoveUpdate(!libDir.equals(oldLibDir));
+ remComps(list[0], J2EEConstants.EAR_ROOT_DIR);
+
+ remComps(list[1], oldLibDir);
+ }
+ }
+ return stat;
+ }
+
+ protected IDataModelOperation generateEARDDOperation() {
+ IDataModel model = DataModelFactory.createDataModel(new EarCreateDeploymentFilesDataModelProvider());
+ model.setProperty(ICreateDeploymentFilesDataModelProperties.GENERATE_DD, earComponent);
+ model.setProperty(ICreateDeploymentFilesDataModelProperties.TARGET_PROJECT, project);
+ return model.getDefaultOperation();
+ }
+
+ protected IDataModelOperation removeComponentFromEAROperation(IVirtualComponent sourceComponent, List targetComponentsHandles, String dir) {
+ IDataModel model = DataModelFactory.createDataModel(new RemoveComponentFromEnterpriseApplicationDataModelProvider());
+ model.setProperty(ICreateReferenceComponentsDataModelProperties.SOURCE_COMPONENT, sourceComponent);
+ List modHandlesList = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST);
+ modHandlesList.addAll(targetComponentsHandles);
+ model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST, modHandlesList);
+ model.setProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENTS_DEPLOY_PATH, dir);
+ return model.getDefaultOperation();
+ }
+
+ protected List getComponentsToRemove(){
+ //j2eeComponentList = getCheckedJ2EEElementsAsList();
+ List list = new ArrayList();
+ if( earComponent != null && list != null ){
+ IVirtualReference[] oldrefs = earComponent.getReferences();
+ for (int j = 0; j < oldrefs.length; j++) {
+ IVirtualReference ref = oldrefs[j];
+ IVirtualComponent handle = ref.getReferencedComponent();
+ if(!j2eeComponentList.contains(handle) && (isVersion5 ? !j2eeLibElementList.contains(handle) : true)){
+ if ((handle instanceof VirtualArchiveComponent) && (isPhysicallyAdded((VirtualArchiveComponent)handle)))
+ continue;
+ list.add(handle);
+ }
+ }
+ }
+ return list;
+ }
+
+ // EAR5 case
+ protected List[] getComponentsToRemoveUpdate(boolean dirUpdated){
+ //j2eeComponentList = getCheckedJ2EEElementsAsList();
+ List[] list = new ArrayList[2];
+ list[0] = new ArrayList();
+ list[1] = new ArrayList();
+ if( earComponent != null && list != null ){
+ IVirtualReference[] oldrefs = earComponent.getReferences();
+ for (int j = 0; j < oldrefs.length; j++) {
+ IVirtualReference ref = oldrefs[j];
+ IVirtualComponent handle = ref.getReferencedComponent();
+ if (handle instanceof VirtualArchiveComponent) {
+ VirtualArchiveComponent comp = (VirtualArchiveComponent)handle;
+ if (isPhysicallyAdded(comp))
+ continue;
+ }
+ if(!j2eeComponentList.contains(handle) && ref.getRuntimePath().isRoot()) {
+ list[0].add(handle);
+ }
+ if((!j2eeLibElementList.contains(handle) || dirUpdated) &&
+ ref.getRuntimePath().toString().equals(oldLibDir)) {
+ list[1].add(handle);
+ }
+ }
+ }
+ return list;
+ }
+
+
+ public void handleEvent(Event event) {
+ if (event.widget == selectAllButton)
+ handleSelectAllButtonPressed();
+ else if (event.widget == deselectAllButton)
+ handleDeselectAllButtonPressed();
+ else if(event.widget == projectJarButton)
+ handleSelectProjectJarButton();
+ else if(event.widget == externalJarButton)
+ handleSelectExternalJarButton();
+ else if(event.widget == addVariableButton)
+ handleSelectVariableButton();
+ else if(event.widget == changeLibPathButton) {
+ this.handleChangeLibDirButton(true);
+ }
+ }
+
+ private void handleSelectAllButtonPressed() {
+ availableComponentsViewer.setAllChecked(true);
+ j2eeComponentList = getCheckedJ2EEElementsAsList(true);
+ javaProjectsList = getCheckedJavaProjectsAsList(true);
+ if (isVersion5) {
+ j2eeLibElementList = getCheckedJ2EEElementsAsList(false);
+ javaLibProjectsList = getCheckedJavaProjectsAsList(false);
+ }
+ }
+
+ private void handleDeselectAllButtonPressed() {
+ availableComponentsViewer.setAllChecked(false);
+ if (isVersion5) {
+ ((DoubleCheckboxTableViewer)availableComponentsViewer).setAllSecondChecked(false);
+ libsToUncheck.clear();
+ }
+ j2eeComponentList = new ArrayList();
+ javaProjectsList = new ArrayList();
+ if (isVersion5) {
+ j2eeLibElementList = new ArrayList();
+ javaLibProjectsList = new ArrayList();
+ }
+ }
+
+ /**
+ * [Bug 238264]
+ * Add an archive as a potential new reference for this.earComponent
+ * NOTE1: the given archive will not be added as a potential reference if there is already a reference to it
+ * NOTE2: the given archive will only be added as an actual reference when this.performOk is invoked
+ *
+ * @param archive the archive to add as a potential new reference in this.earComponent
+ *
+ */
+ private void addPotentialNewReference(IVirtualComponent archive) {
+ //check to see if a reference to the given archive already exists
+ IVirtualReference [] existingRefs = earComponent.getReferences();
+ IVirtualComponent referencedComponent;
+ boolean refAlreadyExists = false;
+ for(int i=0;i<existingRefs.length && !refAlreadyExists;i++){
+ referencedComponent = existingRefs[i].getReferencedComponent();
+ refAlreadyExists = referencedComponent.equals(archive);
+ }
+
+ //only add the archive as a potentialy new reference if it does not already exist
+ if(!refAlreadyExists) {
+ this.j2eeComponentList.add(archive);
+ this.addedJARComponents.add(archive);
+ } else {
+ //TODO should inform user that they selected an already referenced archive?
+ }
+ }
+
+ private void handleSelectExternalJarButton(){
+ IPath[] selected= BuildPathDialogAccess.chooseExternalJAREntries(propPage.getShell());
+
+ if (selected != null) {
+ for (int i= 0; i < selected.length; i++) {
+
+ String type = VirtualArchiveComponent.LIBARCHIVETYPE + IPath.SEPARATOR;
+ IVirtualComponent archive = ComponentCore.createArchiveComponent( earComponent.getProject(), type +
+ selected[i].toString());
+
+ this.addPotentialNewReference(archive);
+ }
+ refresh();
+ }
+
+ }
+
+ private void handleSelectVariableButton(){
+ IPath existingPath[] = new Path[0];
+ IPath[] paths = BuildPathDialogAccess.chooseVariableEntries(propPage.getShell(), existingPath);
+
+ if (paths != null) {
+ refresh();
+ for (int i = 0; i < paths.length; i++) {
+ IPath resolvedPath= JavaCore.getResolvedVariablePath(paths[i]);
+
+ java.io.File file = new java.io.File(resolvedPath.toOSString());
+ if( file.isFile() && file.exists()){
+ String type = VirtualArchiveComponent.VARARCHIVETYPE + IPath.SEPARATOR;
+
+ IVirtualComponent archive = ComponentCore.createArchiveComponent( earComponent.getProject(), type +
+ paths[i].toString());
+
+ this.addPotentialNewReference(archive);
+ }else{
+ //display error
+ }
+ }
+ refresh();
+ }
+ }
+
+ private void handleChangeLibDirButton(boolean warnBlank) {
+ IVirtualFile vFile = earComponent.getRootFolder().getFile(new Path(J2EEConstants.APPLICATION_DD_URI));
+ if (!vFile.exists()) {
+ if (!MessageDialog.openQuestion(null,
+ J2EEUIMessages.getResourceString(J2EEUIMessages.NO_DD_MSG_TITLE),
+ J2EEUIMessages.getResourceString(J2EEUIMessages.GEN_DD_QUESTION))) return;
+ createDD(new NullProgressMonitor());
+ }
+ Application app = (Application)ModelProviderManager.getModelProvider(project).getModelObject();
+ if (libDir == null) {
+ libDir = app.getLibraryDirectory();
+ if (libDir == null) libDir = J2EEConstants.EAR_DEFAULT_LIB_DIR;
+ }
+
+ ChangeLibDirDialog dlg = new ChangeLibDirDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+ .getShell(), libDir, warnBlank);
+ if (dlg.open() == Dialog.CANCEL) return;
+ libDir = dlg.getValue().trim();
+ if (libDir.length() > 0) {
+ if (!libDir.startsWith(J2EEConstants.EAR_ROOT_DIR)) libDir = IPath.SEPARATOR + libDir;
+ }
+ setLibDirInContentProvider();
+ refresh();
+ }
+
+
+ protected void createTableComposite(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridData gData = new GridData(GridData.FILL_BOTH);
+ composite.setLayoutData(gData);
+ fillComposite(composite);
+ }
+
+ public void fillComposite(Composite parent) {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginHeight = 0;
+ parent.setLayout(layout);
+ parent.setLayoutData(new GridData(GridData.FILL_BOTH));
+ createTable(parent);
+ createButtonColumn(parent);
+ }
+
+ protected void createButtonColumn(Composite parent) {
+ buttonColumn = createButtonColumnComposite(parent);
+ GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END);
+ buttonColumn.setLayoutData(data);
+ createPushButtons();
+ }
+
+ protected void createPushButtons() {
+ selectAllButton = createPushButton(SELECT_ALL_BUTTON);
+ deselectAllButton = createPushButton(DE_SELECT_ALL_BUTTON);
+ projectJarButton = createPushButton(J2EEUIMessages.getResourceString(J2EEUIMessages.PROJECT_JAR));//$NON-NLS-1$
+ externalJarButton = createPushButton(J2EEUIMessages.getResourceString(J2EEUIMessages.EXTERNAL_JAR));//$NON-NLS-1$
+ addVariableButton = createPushButton(J2EEUIMessages.getResourceString(J2EEUIMessages.ADDVARIABLE));//$NON-NLS-1$
+ if (isVersion5) changeLibPathButton = createPushButton(J2EEUIMessages.getResourceString(J2EEUIMessages.CHANGE_LIB_DIR));//$NON-NLS-1$
+ }
+
+ protected Button createPushButton(String label) {
+ Button aButton = primCreatePushButton(label, buttonColumn);
+ aButton.addListener(SWT.Selection, this);
+ aButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ return aButton;
+ }
+
+ public Button primCreatePushButton(String label, Composite aButtonColumn) {
+ Button aButton = new Button(aButtonColumn, SWT.PUSH);
+ aButton.setText(label);
+ return aButton;
+ }
+
+ public Composite createButtonColumnComposite(Composite parent) {
+ Composite aButtonColumn = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ aButtonColumn.setLayout(layout);
+ GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
+ aButtonColumn.setLayoutData(data);
+ return aButtonColumn;
+ }
+
+ public Group createGroup(Composite parent) {
+ return new Group(parent, SWT.NULL);
+ }
+
+ protected void createTable(Composite parent) {
+ availableComponentsViewer = createavailableComponentsViewer(parent);
+ GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
+ availableComponentsViewer.getTable().setLayoutData(gd);
+
+ if (earComponent != null) {
+ int j2eeVersion = J2EEVersionUtil.convertVersionStringToInt(earComponent);
+ AvailableJ2EEComponentsForEARContentProvider provider = new AvailableJ2EEComponentsForEARContentProvider(earComponent, j2eeVersion);
+ availableComponentsViewer.setContentProvider(provider);
+ availableComponentsViewer.setLabelProvider(provider);
+ setLibDirInContentProvider();
+ addTableListeners();
+ }
+ }
+
+ private void setLibDirInContentProvider() {
+ IContentProvider prov = availableComponentsViewer.getContentProvider();
+ if (prov instanceof AvailableJ2EEComponentsForEARContentProvider)
+ ((AvailableJ2EEComponentsForEARContentProvider)prov).setCurrentLibDir(libDir);
+ }
+
+ protected void addTableListeners() {
+ addCheckStateListener();
+ addHoverHelpListeners();
+ }
+
+ protected void addHoverHelpListeners() {
+ final Table table = availableComponentsViewer.getTable();
+ createLabelListener(table);
+ createTableListener(table);
+ table.addListener(SWT.Dispose, tableListener);
+ table.addListener(SWT.KeyDown, tableListener);
+ table.addListener(SWT.MouseMove, tableListener);
+ table.addListener(SWT.MouseHover, tableListener);
+ }
+
+ protected void createLabelListener(final Table table) {
+ labelListener = new Listener () {
+ public void handleEvent (Event event) {
+ Label label = (Label)event.widget;
+ Shell shell = label.getShell ();
+ switch (event.type) {
+ case SWT.MouseDown:
+ Event e = new Event ();
+ e.item = (TableItem) label.getData ("_TABLEITEM");
+ table.setSelection (new TableItem [] {(TableItem) e.item});
+ table.notifyListeners (SWT.Selection, e);
+ shell.dispose ();
+ table.setFocus();
+ break;
+ case SWT.MouseExit:
+ shell.dispose ();
+ break;
+ }
+ }
+ };
+ }
+
+ protected void createTableListener(final Table table) {
+ tableListener = new Listener () {
+ Shell tip = null;
+ Label label = null;
+ public void handleEvent (Event event) {
+ switch (event.type) {
+ case SWT.Dispose:
+ case SWT.KeyDown:
+ case SWT.MouseMove: {
+ if (tip == null) break;
+ tip.dispose ();
+ tip = null;
+ label = null;
+ break;
+ }
+ case SWT.MouseHover: {
+ TableItem item = table.getItem (new Point (event.x, event.y));
+ if (item != null) {
+ if (!item.getGrayed())
+ return;
+ if (tip != null && !tip.isDisposed ()) tip.dispose ();
+ tip = new Shell (PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+ .getShell(), SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
+ tip.setBackground (Display.getDefault().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
+ FillLayout layout = new FillLayout ();
+ layout.marginWidth = 2;
+ tip.setLayout (layout);
+ label = new Label (tip, SWT.WRAP);
+ label.setForeground (Display.getDefault().getSystemColor (SWT.COLOR_INFO_FOREGROUND));
+ label.setBackground (Display.getDefault().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
+ label.setData ("_TABLEITEM", item);
+ label.setText (J2EEUIMessages.getResourceString(J2EEUIMessages.HOVER_HELP_FOR_DISABLED_LIBS));
+ label.addListener (SWT.MouseExit, labelListener);
+ label.addListener (SWT.MouseDown, labelListener);
+ Point size = tip.computeSize (SWT.DEFAULT, SWT.DEFAULT);
+ Rectangle rect = item.getBounds (0);
+ Point pt = table.toDisplay (rect.x, rect.y);
+ tip.setBounds (pt.x, pt.y - size.y, size.x, size.y);
+ tip.setVisible (true);
+ }
+ }
+ }
+ }
+ };
+ }
+
+ protected void addCheckStateListener() {
+ availableComponentsViewer.addCheckStateListener(new ICheckStateListener() {
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ CheckboxTableViewer vr = (CheckboxTableViewer)event.getSource();
+ Object element = event.getElement();
+ if (vr.getGrayed(element))
+ vr.setChecked(element, !vr.getChecked(element));
+ Object o = event.getSource();
+ if (!(event instanceof SecondCheckBoxStateChangedEvent) && (isVersion5)) {
+ Object[] items = ((DoubleCheckboxTableViewer)vr).getUncheckedItems();
+ for (int i = 0; i < items.length; i++) {
+ DoubleCheckboxTableItem item = (DoubleCheckboxTableItem)items[i];
+ if (item.getSecondChecked()) {
+ item.setSecondChecked(false);
+ libsToUncheck.remove(event.getElement());
+ }
+ }
+ }
+ if ((event instanceof SecondCheckBoxStateChangedEvent)) {
+ SecondCheckBoxStateChangedEvent evt = (SecondCheckBoxStateChangedEvent)event;
+ DoubleCheckboxTableItem tblItem = evt.getTableItem();
+ if (tblItem.getSecondChecked() && isConflict(tblItem.getData())) {
+ DependencyConflictResolveDialog dlg = new DependencyConflictResolveDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
+ .getShell(), DependencyConflictResolveDialog.DLG_TYPE_2);
+ if (dlg.open() == DependencyConflictResolveDialog.BTN_ID_CANCEL) {
+ tblItem.setSecondChecked(false);
+ return;
+ }
+ }
+ if (tblItem.getSecondChecked()) {
+ if (!tblItem.getChecked())
+ tblItem.setChecked(true);
+ libsToUncheck.add(event.getElement());
+ } else {
+ libsToUncheck.remove(event.getElement());
+ }
+ }
+ j2eeComponentList = getCheckedJ2EEElementsAsList(true);
+ javaProjectsList = getCheckedJavaProjectsAsList(true);
+ if (isVersion5) {
+ j2eeLibElementList = getCheckedJ2EEElementsAsList(false);
+ javaLibProjectsList = getCheckedJavaProjectsAsList(false);
+
+ }
+ }
+ });
+ }
+
+ protected List getCPComponentsInEar(boolean inLibFolder) {
+ List list = new ArrayList();
+ Map pathToComp = new HashMap();
+ IVirtualReference refs[] = earComponent.getReferences();
+ for( int i=0; i< refs.length; i++){
+ IVirtualReference ref = refs[i];
+ if ((ref.getRuntimePath().isRoot() && !inLibFolder) ||
+ (!ref.getRuntimePath().isRoot() && inLibFolder) ||
+ !isVersion5) {
+
+ IVirtualComponent comp = ref.getReferencedComponent();
+ AvailableJ2EEComponentsForEARContentProvider.addClasspathComponentDependencies(list, pathToComp, comp);
+ }
+ }
+ return list;
+ }
+
+ protected List getComponentsInEar(boolean inLibFolder) {
+ List list = new ArrayList();
+ IVirtualReference refs[] = earComponent.getReferences();
+ for( int i=0; i< refs.length; i++){
+ IVirtualReference ref = refs[i];
+ if ((ref.getRuntimePath().isRoot() && !inLibFolder) ||
+ (!ref.getRuntimePath().isRoot() && inLibFolder) ||
+ !isVersion5) {
+
+ IVirtualComponent comp = ref.getReferencedComponent();
+ list.add(comp);
+ }
+ }
+ return list;
+ }
+
+ /**
+ *
+ * @param componentHandle
+ * @return
+ * @description returns true is a component is already in the EAR as a dependent
+ */
+ protected boolean inEARAlready(IVirtualComponent component){
+ IVirtualReference refs[] = earComponent.getReferences();
+ for( int i=0; i< refs.length; i++){
+ IVirtualReference ref = refs[i];
+ if ( ref.getReferencedComponent().equals( component ))
+ return true;
+ }
+ return false;
+ }
+
+ // The next two are used in EAR5 case
+ protected List getCheckedJ2EEElementsAsList(boolean singleChecked) {
+ Object[] elements;
+ if (isVersion5) {
+ elements = singleChecked ? ((DoubleCheckboxTableViewer)availableComponentsViewer).getSingleCheckedElements():
+ ((DoubleCheckboxTableViewer)availableComponentsViewer).getDoubleCheckedElements();
+
+ } else {
+ elements = availableComponentsViewer.getCheckedElements();
+ }
+ List list;
+ if (elements == null || elements.length == 0)
+ list = new ArrayList(0); // Collections.EMPTY_LIST would cause UnsupportedOperationException when a later attempt to add to it is made
+ else {
+ list = new ArrayList();
+ for (int i = 0; i < elements.length; i++) {
+ if (elements[i] instanceof IVirtualComponent) {
+ list.add(elements[i]);
+ }
+ }
+ }
+ return list;
+ }
+
+ protected List getCheckedJavaProjectsAsList(boolean single) {
+ Object[] elements;
+ if (isVersion5) {
+ elements = single ? ((DoubleCheckboxTableViewer)availableComponentsViewer).getSingleCheckedElements() :
+ ((DoubleCheckboxTableViewer)availableComponentsViewer).getDoubleCheckedElements();
+ } else {
+ elements = availableComponentsViewer.getCheckedElements();
+ }
+
+ List list;
+ if (elements == null || elements.length == 0)
+ list = new ArrayList(0); // Collections.EMPTY_LIST would cause UnsupportedOperationException when a later attempt to add to it is made
+ else {
+ list = new ArrayList();
+ for (int i = 0; i < elements.length; i++) {
+ if (elements[i] instanceof IProject) {
+ list.add(elements[i]);
+ }
+ }
+ }
+ return list;
+ }
+
+ protected List getLibFolderLibsAsList() {
+ Object[] items = ((DoubleCheckboxTableViewer)availableComponentsViewer).getSecondCheckedItems();
+ List list;
+ if (items == null || items.length == 0)
+ list = new ArrayList(0); // Collections.EMPTY_LIST would cause UnsupportedOperationException when a later attempt to add to it is made
+ else {
+ list = new ArrayList();
+ for (int i = 0; i < items.length; i++) {
+ Object element = ((DoubleCheckboxTableItem)items[i]).getData();
+ if (element instanceof IProject) {
+ list.add(element);
+ }
+ }
+ }
+ return list;
+ }
+
+ public CheckboxTableViewer createavailableComponentsViewer(Composite parent) {
+ int flags = SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI;
+
+ Table table = isVersion5 ? new Table(parent, flags) : new Table(parent, flags);
+ availableComponentsViewer = isVersion5 ? new DoubleCheckboxTableViewer(table, 2) : new CheckboxTableViewer(table);
+
+ // set up table layout
+ TableLayout tableLayout = new org.eclipse.jface.viewers.TableLayout();
+ tableLayout.addColumnData(new ColumnWeightData(200, true));
+ tableLayout.addColumnData(new ColumnWeightData(200, true));
+ if (isVersion5) tableLayout.addColumnData(new ColumnWeightData(200, true));
+ table.setLayout(tableLayout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+ availableComponentsViewer.setSorter(null);
+
+ // table columns
+ TableColumn fileNameColumn = new TableColumn(table, SWT.NONE, 0);
+ fileNameColumn.setText(ManifestUIResourceHandler.JAR_Module_UI_);
+ fileNameColumn.setResizable(true);
+
+ TableColumn projectColumn = new TableColumn(table, SWT.NONE, 1);
+ projectColumn.setText(ManifestUIResourceHandler.Project_UI_);
+ projectColumn.setResizable(true);
+
+ if (isVersion5) {
+ TableColumn bndColumn = new TableColumn(table, SWT.NONE, 2);
+ bndColumn.setText(ManifestUIResourceHandler.Packed_In_Lib_UI_);
+ bndColumn.setResizable(true);
+ }
+
+ tableLayout.layout(table, true);
+ return availableComponentsViewer;
+
+ }
+
+ private boolean secondShouldBeDisabled(IVirtualComponent component) {
+ if(component.isBinary()) return false;
+ if (JavaEEProjectUtilities.isApplicationClientComponent(component)) return true;
+ if (JavaEEProjectUtilities.isEARProject(component.getProject()) && component.isBinary()) return false;
+ if (JavaEEProjectUtilities.isEJBComponent(component)) return true;
+ if (JavaEEProjectUtilities.isDynamicWebComponent(component)) return true;
+ if (JavaEEProjectUtilities.isJCAComponent(component)) return true;
+ if (JavaEEProjectUtilities.isStaticWebProject(component.getProject())) return true;
+ if (JavaEEProjectUtilities.isProjectOfType(component.getProject(), IJ2EEFacetConstants.JAVA)) return false;
+ return false;
+ }
+
+ private boolean isPhysicallyAdded(VirtualArchiveComponent component) {
+ IPath p = null;
+ try {
+ p = component.getProjectRelativePath();
+ return true;
+ } catch (IllegalArgumentException e) {
+ return false;
+ }
+ }
+
+ private boolean isInLibDir(VirtualArchiveComponent comp) {
+ IPath p = comp.getProjectRelativePath();
+ if (p.segmentCount() == 2)
+ return false;
+ return true;
+ }
+
+
+ public void refresh() {
+
+ IWorkspaceRoot input = ResourcesPlugin.getWorkspace().getRoot();
+ availableComponentsViewer.setInput(input);
+ GridData data = new GridData(GridData.FILL_BOTH);
+ int numlines = Math.min(10, availableComponentsViewer.getTable().getItemCount());
+ data.heightHint = availableComponentsViewer.getTable().getItemHeight() * numlines;
+ availableComponentsViewer.getTable().setLayoutData(data);
+
+ //[Bug 238264] for all the jars in the cache temparaly list them in the grid
+ // until the user applys the changes
+ for(IVirtualComponent jarComponent : this.addedJARComponents) {
+ availableComponentsViewer.add(jarComponent);
+ }
+
+ TableItem [] items = availableComponentsViewer.getTable().getItems();
+ List list = new ArrayList();
+ //Object[] comps = getComponentsInEar();
+ List cpComps;
+ List cpLibComps = new LinkedList();
+ HashSet j2eeComponentSet = new HashSet();
+ HashSet j2eeLibComponentSet = new HashSet();
+ if (isVersion5) {
+ if( j2eeComponentList.isEmpty() ){
+ List comps = getComponentsInEar(false);
+ j2eeComponentList.addAll(comps);
+ }
+ if( j2eeLibElementList.isEmpty() ){
+ List comps = getComponentsInEar(true);
+ j2eeLibElementList.addAll(comps);
+ }
+ // get all Classpath contributions to the Ear
+ cpComps = getCPComponentsInEar(false);
+ j2eeComponentList.addAll(cpComps);
+ cpLibComps = getCPComponentsInEar(true);
+ j2eeLibElementList.addAll(cpLibComps);
+ for (int i = 0; i < j2eeLibElementList.size(); i++) {
+ j2eeLibComponentSet.add(j2eeLibElementList.get(i));
+ }
+
+ } else {
+ if( j2eeComponentList.isEmpty() ){
+ List comps = getComponentsInEar(false);
+ j2eeComponentList.addAll(comps);
+ }
+ // get all Classpath contributions to the Ear
+ cpComps = getCPComponentsInEar(false);
+ j2eeComponentList.addAll(cpComps);
+ }
+ for (int i = 0; i < j2eeComponentList.size(); i++) {
+ j2eeComponentSet.add(j2eeComponentList.get(i));
+ }
+
+ for (int i = 0; i < items.length; i++) {
+ Object element = items[i].getData();
+ try {
+ if (element instanceof IVirtualComponent ||
+ (element instanceof IProject && ((IProject) element).hasNature(JavaCore.NATURE_ID))) {
+ if (j2eeComponentSet.contains(element)) {
+ list.add(element);
+ }
+ boolean shouldBeDisabled = false;
+ if (element instanceof VirtualArchiveComponent) {
+ shouldBeDisabled = isPhysicallyAdded((VirtualArchiveComponent)element);
+ if (shouldBeDisabled) {
+ items[i].setChecked(true);
+ items[i].setGrayed(true);
+ }
+ }
+ if (isVersion5) {
+ DoubleCheckboxTableItem dcbItem = (DoubleCheckboxTableItem)items[i];
+ boolean secondEnabled = true;
+ if (element instanceof IVirtualComponent)
+ secondEnabled = !secondShouldBeDisabled((IVirtualComponent) element);
+ if (shouldBeDisabled) {
+ dcbItem.setSecondChecked(isInLibDir((VirtualArchiveComponent)element));
+ dcbItem.setSecondEnabled(false);
+ } else {
+ dcbItem.setSecondChecked(j2eeLibComponentSet.contains(element));
+ dcbItem.setSecondEnabled(secondEnabled);
+ }
+ if (j2eeLibComponentSet.contains(element)) list.add(element);
+ }
+ }
+ } catch (CoreException e) {
+ J2EEUIPlugin.logError(0, e.getMessage(), e);
+ }
+ }
+
+ for (int i = 0; i < list.size(); i++)
+ availableComponentsViewer.setChecked(list.get(i), true);
+ GridData btndata = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
+ buttonColumn.setLayoutData(btndata);
+
+ }
+
+ private boolean isConflict(Object lib) {
+ IProject libProj = (lib instanceof IProject) ? (IProject)lib : ((IVirtualComponent)lib).getProject();
+ IProject earProject = earComponent.getProject();
+ try {
+ IVirtualComponent cmp = ComponentCore.createComponent(earProject);
+ IProject[] earRefProjects = earProject.getReferencedProjects();
+ for (int i = 0; i < earRefProjects.length; i++) {
+ if (!J2EEProjectUtilities.isEARProject(earRefProjects[i]) &&
+ !earRefProjects[i].equals(libProj)) {
+ IVirtualComponent cmp1 = ComponentCore.createComponent(earRefProjects[i]);
+ IVirtualReference[] refs = cmp1.getReferences();
+ for (int j = 0; j < refs.length; j++) {
+ if (refs[j].getReferencedComponent().getProject().equals(libProj)) return true;
+ }
+ }
+ }
+ return false;
+ } catch (CoreException ce) {
+ J2EEUIPlugin.logError(ce);
+ }
+ return false;
+ }
+
+ private void handleSelectProjectJarButton(){
+ IPath[] selected= BuildPathDialogAccess.chooseJAREntries(propPage.getShell(), project.getLocation(), new IPath[0]);
+
+ if (selected != null) {
+ for (int i= 0; i < selected.length; i++) {
+ //IPath fullPath = project.getFile(selected[i]).getFullPath();
+ String type = VirtualArchiveComponent.LIBARCHIVETYPE + IPath.SEPARATOR;
+ IVirtualComponent archive = ComponentCore.createArchiveComponent( earComponent.getProject(), type +
+ selected[i].makeRelative().toString());
+
+ this.addPotentialNewReference(archive);
+ }
+ refresh();
+ }
+
+ }
+
+ /**
+ * [Bug 238264]
+ * determines a unique URI mapping name for a given component
+ * this is in case two components have the same name.
+ *
+ * @return returns a valid (none duplicate) uri mapping name for the given component\
+ */
+ private String getURIMappingName(IVirtualComponent archive) {
+
+ //get the default uri map name for the given archive
+ IPath componentPath = Path.fromOSString(archive.getName());
+ String uriMapName = componentPath.lastSegment().replace(' ', '_');
+
+
+ //check to be sure this uri mapping is not already in use by another reference
+ boolean dupeArchiveName;
+ String refedCompName;
+ int lastDotIndex;
+ String increment;
+ IVirtualReference [] existingRefs = earComponent.getReferences();
+ for(int i=0;i<existingRefs.length;i++){
+ refedCompName = existingRefs[i].getReferencedComponent().getName();
+
+ //if uri mapping names of the refed component and the given archive are the same
+ // find a new uri map name for the given archive
+ if(existingRefs[i].getArchiveName().equals(uriMapName)){
+ dupeArchiveName = true;
+ //find a new uriMapName for the given component
+ for(int j=1; dupeArchiveName; j++){
+ lastDotIndex = uriMapName.lastIndexOf('.');
+ increment = "_"+j; //$NON-NLS-1$
+
+ //create the new potential name
+ if(lastDotIndex != -1){
+ uriMapName = uriMapName.substring(0, lastDotIndex) + increment + uriMapName.substring(lastDotIndex);
+ } else {
+ uriMapName = uriMapName.substring(0)+increment;
+ }
+
+ //determine if the new potential name is valid
+ for(int k=0; k<existingRefs.length; k++) {
+ dupeArchiveName = existingRefs[k].getArchiveName().equals(uriMapName);
+ if(dupeArchiveName) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return uriMapName;
+ }
+
+ /**
+ * Method returns the name of the given IVirtualComponent being sure the correct extension
+ * is on the end of the name, this is important for internal projects. Added for [Bug 241509]
+ *
+ * @param virtComp the IVirtualComponent to get the name of with the correct extension
+ * @return the name of the given IVirtualComponent with the correct extension
+ */
+ private String getVirtualComponentNameWithExtension(IVirtualComponent virtComp) {
+ String virtCompURIMapName = this.getURIMappingName(virtComp);
+
+ boolean linkedToEAR = true;
+ try {
+ if(virtComp.isBinary()){
+ linkedToEAR = ((J2EEModuleVirtualArchiveComponent)virtComp).isLinkedToEAR();
+ ((J2EEModuleVirtualArchiveComponent)virtComp).setLinkedToEAR(false);
+ }
+ if(JavaEEProjectUtilities.isDynamicWebComponent(virtComp)) {
+ if(!virtCompURIMapName.endsWith(IJ2EEModuleConstants.WAR_EXT)) {
+ //web module URIs need to end in WAR
+ virtCompURIMapName += IJ2EEModuleConstants.WAR_EXT;
+ }
+ } else if(JavaEEProjectUtilities.isJCAComponent(virtComp)) {
+ if(!virtCompURIMapName.endsWith(IJ2EEModuleConstants.RAR_EXT)) {
+ //connector module URIs need to end in RAR
+ virtCompURIMapName += IJ2EEModuleConstants.RAR_EXT;
+ }
+ } else if(!virtCompURIMapName.endsWith(IJ2EEModuleConstants.JAR_EXT)) {
+ //all other modules (EJB, AppClient, Utility) need to end in JAR
+ virtCompURIMapName += IJ2EEModuleConstants.JAR_EXT;
+ }
+ } finally {
+ if(virtComp.isBinary()){
+ ((J2EEModuleVirtualArchiveComponent)virtComp).setLinkedToEAR(linkedToEAR);
+ }
+ }
+ return virtCompURIMapName;
+ }
+
+}
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AvailableJ2EEComponentsForEARContentProviderClone.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AvailableJ2EEComponentsForEARContentProviderClone.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/AvailableJ2EEComponentsForEARContentProviderClone.java 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,304 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ * IBM Corporation - initial API and implementation
+ * Stefan Dimov, stefan.dimov(a)sap.com - bug 207826
+ *******************************************************************************/
+package org.jboss.ide.eclipse.as.wtp.override.ui.properypage;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jst.j2ee.application.internal.operations.ClassPathSelection;
+import org.eclipse.jst.j2ee.classpathdep.ClasspathDependencyUtil;
+import org.eclipse.jst.j2ee.classpathdep.IClasspathDependencyConstants;
+import org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent;
+import org.eclipse.jst.j2ee.internal.J2EEConstants;
+import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
+import org.eclipse.jst.j2ee.model.IEARModelProvider;
+import org.eclipse.jst.j2ee.model.IModelProvider;
+import org.eclipse.jst.j2ee.model.ModelProviderManager;
+import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.jst.javaee.application.Application;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
+import org.jboss.ide.eclipse.as.wtp.override.WTPOveridePlugin;
+
+public class AvailableJ2EEComponentsForEARContentProviderClone implements IStructuredContentProvider, ITableLabelProvider {
+
+ final static String PATH_SEPARATOR = String.valueOf(IPath.SEPARATOR);
+
+ private int j2eeVersion;
+ private IVirtualComponent earComponent;
+ private boolean isEE5 = false;
+ private String libDir = null;
+
+
+ public AvailableJ2EEComponentsForEARContentProviderClone(IVirtualComponent aEarComponent, int j2eeVersion) {
+ super();
+ this.j2eeVersion = j2eeVersion;
+ earComponent = aEarComponent;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+ */
+ public Object[] getElements(Object inputElement) {
+ if (null != earComponent){
+ isEE5 = J2EEProjectUtilities.isJEEProject(earComponent.getProject());
+ }
+ Object[] empty = new Object[0];
+ if (!(inputElement instanceof IWorkspaceRoot))
+ return empty;
+ IProject[] projects = ((IWorkspaceRoot) inputElement).getProjects();
+ if (projects == null || projects.length == 0)
+ return empty;
+ List validCompList = new ArrayList();
+ Map pathToComp = new HashMap();
+ for (int i = 0; i < projects.length; i++) {
+ // get flexible project
+ IProject project = projects[i];
+ if(ModuleCoreNature.isFlexibleProject(project)){
+ IVirtualComponent component = ComponentCore.createComponent(project);
+ if (J2EEProjectUtilities.isApplicationClientProject(project) ||
+ J2EEProjectUtilities.isEJBProject(project) ||
+ J2EEProjectUtilities.isDynamicWebProject(project) ||
+ J2EEProjectUtilities.isJCAProject(project) ||
+ J2EEProjectUtilities.isUtilityProject(project) ){
+ int compJ2EEVersion = J2EEVersionUtil.convertVersionStringToInt(component);
+ if( compJ2EEVersion <= j2eeVersion){
+ validCompList.add(component);
+ } else if(isEE5){
+ validCompList.add(component);
+ }
+ }else if(null != earComponent && J2EEProjectUtilities.isEARProject(project)){
+ //find the ArchiveComponent
+ if (component.equals( earComponent )) {
+ if (isEE5) {
+ String earDDVersion = JavaEEProjectUtilities.getJ2EEDDProjectVersion(project);
+ boolean isDDVersion5 = earDDVersion.equals(J2EEVersionConstants.VERSION_5_0_TEXT) ? true : false;
+ if (isDDVersion5) {
+ Application app = (Application)ModelProviderManager.getModelProvider(project).getModelObject();
+ if (libDir == null)
+ libDir = app.getLibraryDirectory();
+ if (libDir == null)
+ libDir = J2EEConstants.EAR_DEFAULT_LIB_DIR;
+ }
+ }
+ IVirtualReference[] newrefs = component.getReferences();
+ for( int k=0; k< newrefs.length; k++ ){
+ IVirtualReference tmpref = newrefs[k];
+ IVirtualComponent referencedcomp = tmpref.getReferencedComponent();
+ boolean isBinary = referencedcomp.isBinary();
+ if( isBinary ){
+ if (shouldShow(referencedcomp))
+ validCompList.add(referencedcomp);
+ } else {
+ addClasspathComponentDependencies(validCompList, pathToComp, referencedcomp);
+ }
+ }
+ }
+ }
+ } else
+ try {
+ if (project.exists() && project.isAccessible() && project.hasNature("org.eclipse.jdt.core.javanature") ){ //$NON-NLS-1$
+ if( !project.getName().startsWith(".") ) //$NON-NLS-1$
+ validCompList.add(project);
+ }
+ } catch (CoreException e) {
+ WTPOveridePlugin.log(e);
+ }
+ }
+ return validCompList.toArray();
+ }
+
+ public void setCurrentLibDir(String libDir) {
+ this.libDir = libDir;
+ }
+
+ private boolean shouldShow(IVirtualComponent component) {
+ if (!(component instanceof VirtualArchiveComponent))
+ return true;
+
+ VirtualArchiveComponent comp = (VirtualArchiveComponent)component;
+ IPath p = null;
+ try {
+ p = comp.getProjectRelativePath();
+ } catch (IllegalArgumentException e) {
+ return true;
+ }
+ if ((p == null) && (p.segmentCount() == 0))
+ return true;
+ IContainer f = earComponent.getRootFolder().getUnderlyingFolder();
+ String rootFolderName = f.getProjectRelativePath().segment(0);
+ if (!p.segment(0).equals(rootFolderName))
+ return false;
+ if (p.segmentCount() == 2)
+ return true;
+ if (isEE5) {
+ String strippedLibDir = stripSeparators(libDir);
+ String[] libDirSegs = strippedLibDir.split(PATH_SEPARATOR);
+ if (p.segmentCount() - 2 != libDirSegs.length)
+ return false;
+ for (int i = 0; i < libDirSegs.length; i++)
+ if (!libDirSegs[i].equals(p.segment(i + 1)))
+ return false;
+ return true;
+ }
+ return false;
+ }
+
+ private String stripSeparators(String dir) {
+ if (dir.startsWith(PATH_SEPARATOR))
+ dir = dir.substring(1);
+ if (dir.endsWith(PATH_SEPARATOR))
+ dir = dir.substring(0, dir.length() - 1);
+ return dir;
+ }
+
+ public static void addClasspathComponentDependencies(final List componentList, final Map pathToComp, final IVirtualComponent referencedComponent) {
+ if (referencedComponent instanceof J2EEModuleVirtualComponent) {
+ J2EEModuleVirtualComponent j2eeComp = (J2EEModuleVirtualComponent) referencedComponent;
+ IVirtualReference[] cpRefs = j2eeComp.getJavaClasspathReferences();
+ for (int j=0; j < cpRefs.length; j++) {
+ String unresolvedURI = null;
+ // only ../ mappings supported at this level
+ if (!cpRefs[j].getRuntimePath().equals(IClasspathDependencyConstants.RUNTIME_MAPPING_INTO_CONTAINER_PATH)) {
+ continue;
+ }
+ // if the absolute path for this component already has a mapping, skip (the comp might be contributed by more than
+ // one child module)
+ final IPath path = ClasspathDependencyUtil.getClasspathVirtualReferenceLocation(cpRefs[j]);
+ final IVirtualComponent comp = (IVirtualComponent) pathToComp.get(path);
+ if (comp != null) {
+ // replace with a temp VirtualArchiveComponent whose IProject is set to a new pseudo name that is
+ // the concatenation of all project contributions for that archive
+ if (comp instanceof VirtualArchiveComponent) {
+ final VirtualArchiveComponent oldComp = (VirtualArchiveComponent) comp;
+ componentList.remove(comp);
+ final VirtualArchiveComponent newComponent = ClassPathSelection.updateDisplayVirtualArchiveComponent(oldComp, cpRefs[j]);
+ pathToComp.put(path, newComponent);
+ componentList.add(newComponent);
+ }
+ continue;
+ } else {
+ pathToComp.put(path, cpRefs[j].getReferencedComponent());
+ }
+ componentList.add(cpRefs[j].getReferencedComponent());
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+ */
+ public Image getColumnImage(Object element, int columnIndex) {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+ */
+ public String getColumnText(Object element, int columnIndex) {
+ if (element instanceof IVirtualComponent) {
+ IVirtualComponent comp = (IVirtualComponent)element;
+ String name = ""; //$NON-NLS-1$
+ if( columnIndex == 0 ){
+ if (ClasspathDependencyUtil.isClasspathComponentDependency(comp)) {
+ return ClasspathDependencyUtil.getClasspathComponentDependencyDisplayString(comp);
+ }
+ IModelProvider provider = ModelProviderManager.getModelProvider(earComponent.getProject());
+ if (provider instanceof IEARModelProvider)
+ {
+ name = ((IEARModelProvider)provider).getModuleURI(comp);
+ }
+ if( name == null || name == "" ){ //$NON-NLS-1$
+ name = comp.getName();
+ }
+ return name;
+ } else if (columnIndex == 1) {
+ return comp.getProject().getName();
+ } else if (columnIndex == 2) {
+ return ""; //$NON-NLS-1$
+ }
+ } else if (element instanceof IProject){
+ if (columnIndex != 2) {
+ return ((IProject)element).getName();
+ } else {
+ return ""; //$NON-NLS-1$
+ }
+ }
+ return null;
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+ * java.lang.Object, java.lang.Object)
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ //do nothing
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+ */
+ public void addListener(ILabelProviderListener listener) {
+ //do nothing
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
+ * java.lang.String)
+ */
+ public boolean isLabelProperty(Object element, String property) {
+ return false;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+ */
+ public void removeListener(ILabelProviderListener listener) {
+ //do nothing
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ public void dispose() {
+ }
+}
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/J2EEDependenciesPageClone.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/J2EEDependenciesPageClone.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.override.ui/src/org/jboss/ide/eclipse/as/wtp/override/ui/properypage/J2EEDependenciesPageClone.java 2009-05-21 07:24:49 UTC (rev 15379)
@@ -0,0 +1,252 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ * IBM Corporation - initial implementation as prop page heirarchy
+ * rfrost(a)bea.com - conversion to single property page impl
+ *******************************************************************************/
+
+package org.jboss.ide.eclipse.as.wtp.override.ui.properypage;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jst.j2ee.internal.IJ2EEDependenciesControl;
+import org.eclipse.jst.j2ee.internal.J2EEDependenciesPage;
+import org.eclipse.jst.j2ee.internal.JARDependencyPropertiesPage;
+import org.eclipse.jst.j2ee.internal.ManifestUIResourceHandler;
+import org.eclipse.jst.j2ee.internal.WebLibDependencyPropertiesPage;
+import org.eclipse.jst.j2ee.internal.WebRefDependencyPropertiesPage;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.PropertyPage;
+import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+
+
+/*
+ * The only change in this file between here and upstream is
+ * the method createEARContent
+ */
+
+/**
+ * Primary project property page for J2EE dependencies; content is dynamically
+ * generated based on the project facets and will be comprised by a
+ * set of IJ2EEDependenciesControl implementations.
+ */
+public class J2EEDependenciesPageClone extends J2EEDependenciesPage {
+
+ public String DESCRIPTION = J2EEUIMessages.getResourceString("DESCRIPTION"); //$NON-NLS-1$
+
+ private IProject project;
+ private IJ2EEDependenciesControl[] controls = new IJ2EEDependenciesControl[0];
+
+ public J2EEDependenciesPageClone() {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+ */
+ protected Control createContents(Composite parent) {
+
+ // Need to find out what type of project we are handling
+ project = (IProject) getElement().getAdapter(IResource.class);
+ boolean isEAR = false;
+ boolean isWEB = false;
+ try {
+ final IFacetedProject facetedProject = ProjectFacetsManager.create(project);
+ if (facetedProject == null) {
+ return getFacetErrorComposite(parent);
+ }
+ isEAR = facetedProject.hasProjectFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_EAR_MODULE));
+ isWEB = facetedProject.hasProjectFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE));
+ } catch (CoreException ce) {
+ return getFacetErrorComposite(parent);
+ }
+
+ if (isEAR) {
+ return createEARContent(parent);
+ } else if (isWEB) {
+ return createWebContent(parent);
+ } else {
+ return createNonEARContent(parent);
+ }
+ }
+
+ private Composite getFacetErrorComposite(final Composite parent) {
+ final String errorCheckingFacet = ManifestUIResourceHandler.Error_Checking_Project_Facets;
+ setErrorMessage(errorCheckingFacet);
+ setValid(false);
+ return getErrorComposite(parent, errorCheckingFacet);
+ }
+
+ private Composite getErrorComposite(final Composite parent, final String error) {
+ final Composite composite = new Composite(parent, SWT.NONE);
+ final GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginWidth = 0;
+ composite.setLayout(layout);
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+ final Label label= new Label(composite, SWT.NONE);
+ label.setText(error);
+ return composite;
+ }
+
+
+ /*
+ * This method is different from upstream
+ */
+ private Composite createEARContent(final Composite parent) {
+ AddModulestoEARPropertiesPageClone page = new AddModulestoEARPropertiesPageClone(project, this);
+ return page.createContents(parent);
+ }
+
+ private Composite createWebContent(final Composite parent) {
+ final boolean standalone = J2EEProjectUtilities.isStandaloneProject(project);
+
+ if (standalone) {
+ // only need to create the Web Libraries page
+ controls = new IJ2EEDependenciesControl[1];
+ controls[0] = new WebLibDependencyPropertiesPage(project, this);
+ return controls[0].createContents(parent);
+ } else {
+ // Create a tabbed folder with both "J2EE Modules" and "Web Libraries"
+ final TabFolder folder = new TabFolder(parent, SWT.LEFT);
+ folder.setLayoutData(new GridData(GridData.FILL_BOTH));
+ folder.setFont(parent.getFont());
+
+ // Create the two tabs
+ controls = new IJ2EEDependenciesControl[2];
+
+ controls[0] = new JARDependencyPropertiesPage(project, this);
+ TabItem tab = new TabItem(folder, SWT.NONE);
+ tab.setControl(controls[0].createContents(folder));
+ tab.setText(ManifestUIResourceHandler.J2EE_Modules);
+ controls[1] = new WebLibDependencyPropertiesPage(project, this);
+ tab = new TabItem(folder, SWT.NONE);
+ tab.setControl(controls[1].createContents(folder));
+ tab.setText(ManifestUIResourceHandler.Web_Libraries);
+
+ folder.setSelection(0);
+ return folder;
+ }
+ }
+
+ private Composite createNonEARContent(final Composite parent) {
+ controls = new IJ2EEDependenciesControl[1];
+ final boolean standalone = J2EEProjectUtilities.isStandaloneProject(project);
+ if (standalone) {
+ // if not referenced by an EAR, check if referenced by a dynamic web project
+ if (J2EEProjectUtilities.getReferencingWebProjects(project).length > 0) {
+ controls[0] = new WebRefDependencyPropertiesPage(project, this);
+ } else {
+ return getUnreferencedErrorComposite(parent);
+ }
+ } else {
+ controls[0] = new JARDependencyPropertiesPage(project, this);
+ }
+
+ return controls[0].createContents(parent);
+ }
+
+ private Composite getUnreferencedErrorComposite(final Composite parent) {
+ final String msg = ManifestUIResourceHandler.Unreferenced_Module_Error;
+ setErrorMessage(msg);
+ return getErrorComposite(parent, msg);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.IPreferencePage#performOk()
+ */
+ public boolean performOk() {
+ for (int i = 0; i < controls.length; i++) {
+ if (controls[i] != null) {
+ if (!controls[i].performOk()) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
+ */
+ public void performDefaults() {
+ for (int i = 0; i < controls.length; i++) {
+ if (controls[i] != null) {
+ controls[i].performDefaults();
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.IPreferencePage#performCancel()
+ */
+ public boolean performCancel() {
+ for (int i = 0; i < controls.length; i++) {
+ if (controls[i] != null) {
+ if (!controls[i].performCancel()) {
+ return false;
+ }
+ }
+ }
+ return super.performCancel();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
+ */
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ for (int i = 0; i < controls.length; i++) {
+ if (controls[i] != null) {
+ controls[i].setVisible(visible);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
+ */
+ public void dispose() {
+ super.dispose();
+ for (int i = 0; i < controls.length; i++) {
+ if(controls[i] != null){
+ controls[i].dispose();
+ }
+ }
+ }
+
+ protected static void createDescriptionComposite(final Composite parent, final String description) {
+ Composite descriptionComp = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ descriptionComp.setLayout(layout);
+ descriptionComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ fillDescription(descriptionComp, description);
+ }
+
+ private static void fillDescription(Composite c, String s) {
+ GridData data = new GridData(GridData.FILL_HORIZONTAL);
+ data.widthHint = 250;
+ Text text = new Text(c, SWT.READ_ONLY | SWT.WRAP);
+ text.setLayoutData(data);
+ text.setText(s);
+ }
+}
15 years, 4 months
JBoss Tools SVN: r15378 - in trunk/smooks/plugins: org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/impl and 3 other directories.
by jbosstools-commits@lists.jboss.org
Author: DartPeng
Date: 2009-05-21 01:43:30 -0400 (Thu, 21 May 2009)
New Revision: 15378
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/ISmooksGraphChangeListener.java
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/SmooksGraphicsExtType.java
trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/impl/SmooksGraphicsExtTypeImpl.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/PropertyUICreator.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SelectoreSelectionDialog.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksActionBarContributor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/StructuredDataSelectionWizardDailog.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/smooks/ResourceConfigTypeUICreator.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
Log:
JBIDE-4348
Add a link to open input message wizard dialog
Added: trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/ISmooksGraphChangeListener.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/ISmooksGraphChangeListener.java (rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/ISmooksGraphChangeListener.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.model.graphics.ext;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public interface ISmooksGraphChangeListener {
+ public void saveComplete(SmooksGraphicsExtType extType);
+}
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/ISmooksGraphChangeListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/SmooksGraphicsExtType.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/SmooksGraphicsExtType.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/SmooksGraphicsExtType.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -6,6 +6,8 @@
*/
package org.jboss.tools.smooks.model.graphics.ext;
+import java.util.List;
+
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
@@ -29,6 +31,13 @@
* @generated
*/
public interface SmooksGraphicsExtType extends EObject {
+
+ List<ISmooksGraphChangeListener> getChangeListeners();
+
+ void addSmooksGraphChangeListener(ISmooksGraphChangeListener listener);
+
+ void removeSmooksGraphChangeListener(ISmooksGraphChangeListener listener);
+
/**
* Returns the value of the '<em><b>Input</b></em>' containment reference list.
* The list contents are of type {@link org.jboss.tools.smooks.model.graphics.ext.InputType}.
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/impl/SmooksGraphicsExtTypeImpl.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/impl/SmooksGraphicsExtTypeImpl.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.core/src/org/jboss/tools/smooks/model/graphics/ext/impl/SmooksGraphicsExtTypeImpl.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -6,7 +6,9 @@
*/
package org.jboss.tools.smooks.model.graphics.ext.impl;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
@@ -22,6 +24,7 @@
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
+import org.jboss.tools.smooks.model.graphics.ext.ISmooksGraphChangeListener;
import org.jboss.tools.smooks.model.graphics.ext.InputType;
import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtPackage;
import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
@@ -42,6 +45,9 @@
* @generated
*/
public class SmooksGraphicsExtTypeImpl extends EObjectImpl implements SmooksGraphicsExtType {
+
+ private List<ISmooksGraphChangeListener> changeListeners;
+
/**
* The cached value of the '{@link #getInput() <em>Input</em>}' containment reference list.
* <!-- begin-user-doc -->
@@ -277,4 +283,32 @@
return result.toString();
}
+ /**
+ * @return the changeListeners
+ */
+ public List<ISmooksGraphChangeListener> getChangeListeners() {
+ if(changeListeners == null){
+ changeListeners = new ArrayList<ISmooksGraphChangeListener>();
+ }
+ return changeListeners;
+ }
+
+ /**
+ * @param changeListeners the changeListeners to set
+ */
+ public void setChangeListeners(List<ISmooksGraphChangeListener> changeListeners) {
+ this.changeListeners = changeListeners;
+ }
+
+ public void addSmooksGraphChangeListener(ISmooksGraphChangeListener listener) {
+ this.getChangeListeners().add(listener);
+
+ }
+
+ public void removeSmooksGraphChangeListener(ISmooksGraphChangeListener listener) {
+ this.getChangeListeners().remove(listener);
+ }
+
+
+
} //SmooksGraphicsExtTypeImpl
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/PropertyUICreator.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/PropertyUICreator.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/PropertyUICreator.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -180,7 +180,7 @@
SmooksMultiFormEditor formEditor) {
SmooksGraphicsExtType ext = formEditor.getSmooksGraphicsExt();
if (ext != null) {
- return SmooksUIUtils.createSelectorFieldEditor(toolkit, parent, propertyDescriptor, model, ext);
+ return SmooksUIUtils.createSelectorFieldEditor(toolkit, parent, propertyDescriptor, model, ext,formEditor);
}
return null;
}
@@ -354,7 +354,7 @@
name += "*";
}
AttributeFieldEditPart editPart1 = SmooksUIUtils.createSelectorFieldEditor(name, toolkit, container,
- createOnElementFeature, model, formEditor.getSmooksGraphicsExt());
+ createOnElementFeature, model, formEditor.getSmooksGraphicsExt(),formEditor);
editPart1.setAttribute(createOnElementFeature.getFeature(model));
String namespace = "Namespace";
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SelectoreSelectionDialog.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SelectoreSelectionDialog.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SelectoreSelectionDialog.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -23,6 +23,7 @@
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
@@ -36,11 +37,17 @@
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Hyperlink;
import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator;
import org.jboss.tools.smooks.configuration.editors.javabean.JavaBeanModel;
import org.jboss.tools.smooks.configuration.editors.javabean.JavaBeanModelFactory;
import org.jboss.tools.smooks.configuration.editors.uitls.ProjectClassLoader;
import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.configuration.editors.wizard.StructuredDataSelectionWizard;
import org.jboss.tools.smooks.configuration.editors.xml.AbstractXMLObject;
import org.jboss.tools.smooks.configuration.editors.xml.TagList;
import org.jboss.tools.smooks.configuration.editors.xml.XMLObjectAnalyzer;
@@ -61,15 +68,17 @@
private Button onlyNameButton;
private Button fullPathButton;
private SelectorAttributes selectorAttributes = null;
+ private IEditorPart editorPart = null;
public SelectoreSelectionDialog(IShellProvider parentShell) {
super(parentShell);
}
- public SelectoreSelectionDialog(Shell parentShell, SmooksGraphicsExtType graphicsExt) {
+ public SelectoreSelectionDialog(Shell parentShell, SmooksGraphicsExtType graphicsExt, IEditorPart editorPart) {
super(parentShell);
this.graphicsExt = graphicsExt;
selectorAttributes = new SelectorAttributes();
+ this.editorPart = editorPart;
}
/*
@@ -92,23 +101,55 @@
layout.marginWidth = 10;
layout.makeColumnsEqualWidth = false;
composite.setLayout(layout);
-
- Label label = new Label(composite,SWT.NONE);
- label.setText("Sperator Char : ");
- final Combo speratorCombo = new Combo(composite,SWT.BORDER|SWT.READ_ONLY);
- speratorCombo.add(" ");
- speratorCombo.add("/");
- speratorCombo.select(1);
-// speratorCombo.setEditable(false);
- gd = new GridData(GridData.FILL_HORIZONTAL);
- speratorCombo.setLayoutData(gd);
- speratorCombo.addModifyListener(new ModifyListener(){
- public void modifyText(ModifyEvent e) {
- selectorAttributes.setSelectorSperator(speratorCombo.getText());
+ Label viewerLabel = new Label(composite, SWT.NONE);
+ viewerLabel.setText("Input Message:");
+
+ FormToolkit toolkit = new FormToolkit(getShell().getDisplay());
+
+ Hyperlink link = toolkit.createHyperlink(composite, "Click to add Input Data", SWT.NONE);// new
+ // Hyperlink(composite,SWT.NONE);
+ link.setBackground(composite.getBackground());
+ link.addHyperlinkListener(new IHyperlinkListener() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.forms.events.IHyperlinkListener#linkActivated(
+ * org.eclipse.ui.forms.events.HyperlinkEvent)
+ */
+ public void linkActivated(HyperlinkEvent e) {
+ showInputDataWizard();
}
-
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.forms.events.IHyperlinkListener#linkEntered(org
+ * .eclipse.ui.forms.events.HyperlinkEvent)
+ */
+ public void linkEntered(HyperlinkEvent e) {
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.forms.events.IHyperlinkListener#linkExited(org
+ * .eclipse.ui.forms.events.HyperlinkEvent)
+ */
+ public void linkExited(HyperlinkEvent e) {
+
+ }
+
});
+ gd = new GridData();
+ gd.horizontalAlignment = GridData.END;
+ link.setLayoutData(gd);
+
viewer = new TreeViewer(composite, SWT.BORDER);
viewer.setContentProvider(new CompoundStructuredDataContentProvider());
viewer.setLabelProvider(new CompoundStructuredDataLabelProvider());
@@ -124,51 +165,69 @@
currentSelection = ((IStructuredSelection) event.getSelection()).getFirstElement();
}
});
-
+
gd = new GridData(GridData.FILL_BOTH);
gd.horizontalSpan = 2;
viewer.getTree().setLayoutData(gd);
-
- Label l = new Label(composite,SWT.NONE);
+
+ Label label = new Label(composite, SWT.NONE);
+ label.setText("Sperator Char : ");
+ final Combo speratorCombo = new Combo(composite, SWT.BORDER | SWT.READ_ONLY);
+ speratorCombo.add(" ");
+ speratorCombo.add("/");
+ speratorCombo.select(1);
+ // speratorCombo.setEditable(false);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ speratorCombo.setLayoutData(gd);
+ speratorCombo.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ selectorAttributes.setSelectorSperator(speratorCombo.getText());
+ }
+
+ });
+
+ Label l = new Label(composite, SWT.NONE);
l.setText("Selector generate policy : ");
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
l.setLayoutData(gd);
-
- Composite com = new Composite(composite,SWT.NONE);
+
+ Composite com = new Composite(composite, SWT.NONE);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
com.setLayoutData(gd);
-
+
GridLayout gl = new GridLayout();
gl.numColumns = 2;
com.setLayout(gl);
- fullPathButton = new Button(com,SWT.RADIO);
+ fullPathButton = new Button(com, SWT.RADIO);
fullPathButton.setText("Full Path");
- onlyNameButton = new Button(com,SWT.RADIO);
+ onlyNameButton = new Button(com, SWT.RADIO);
onlyNameButton.setText("Only Name");
-// Button containtParentButton = new Button(com,SWT.RADIO);
-// containtParentButton.setText("Containt Parent Name");
+ // Button containtParentButton = new Button(com,SWT.RADIO);
+ // containtParentButton.setText("Containt Parent Name");
fullPathButton.setSelection(true);
-
+
handleButtons();
-
+
getShell().setText("Selector generate dialog");
-
+
SmooksUIUtils.expandSelectorViewer(inputList, viewer);
-
+
return composite;
}
+
private void handleButtons() {
- fullPathButton.addSelectionListener(new SelectionAdapter(){
+ fullPathButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
selectorAttributes.setSelectorPolicy(SelectorAttributes.FULL_PATH);
}
});
-
- onlyNameButton.addSelectionListener(new SelectionAdapter(){
+
+ onlyNameButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
selectorAttributes.setSelectorPolicy(SelectorAttributes.ONLY_NAME);
@@ -191,8 +250,8 @@
path = path.trim();
if (SmooksModelUtils.INPUT_TYPE_JAVA.equals(type)) {
try {
- JavaBeanModel model = JavaBeanModelFactory
- .getJavaBeanModelWithLazyLoad(classLoader.loadClass(path));
+ JavaBeanModel model = JavaBeanModelFactory.getJavaBeanModelWithLazyLoad(classLoader
+ .loadClass(path));
if (model != null) {
list.add(model);
}
@@ -216,8 +275,8 @@
list.add(model);
}
}
- } catch(Throwable e){
-
+ } catch (Throwable e) {
+
}
}
}
@@ -229,6 +288,23 @@
return list;
}
+ protected void showInputDataWizard() {
+ StructuredDataSelectionWizard wizard = new StructuredDataSelectionWizard();
+ if (this.editorPart != null) {
+ wizard.setInput(editorPart.getEditorInput());
+ wizard.setSite(editorPart.getEditorSite());
+ }
+
+ wizard.setForcePreviousAndNextButtons(true);
+ StructuredDataSelectionWizardDailog dialog = new StructuredDataSelectionWizardDailog(this.getShell(), wizard,
+ this.graphicsExt);
+ if(dialog.show() == WizardDialog.OK){
+ List<Object> input = this.generateInputData();
+ this.viewer.setInput(input);
+ SmooksUIUtils.expandSelectorViewer(input, viewer);
+ }
+ }
+
/**
* @return the currentSelection
*/
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksActionBarContributor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksActionBarContributor.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksActionBarContributor.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -43,6 +43,7 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Widget;
@@ -362,9 +363,21 @@
((Text) widget).cut();
return;
}
+ if (widget instanceof Combo) {
+ ((Combo) widget).cut();
+ return;
+ }
super.runWithEvent(event);
}
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.action.Action#isEnabled()
+ */
+ @Override
+ public boolean isEnabled() {
+ return super.isEnabled();
+ }
+
};
cutAction.setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_CUT));
actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), cutAction);
@@ -377,6 +390,10 @@
((Text) widget).copy();
return;
}
+ if (widget instanceof Combo) {
+ ((Combo) widget).copy();
+ return;
+ }
super.runWithEvent(event);
}
@@ -392,6 +409,10 @@
((Text) widget).paste();
return;
}
+ if (widget instanceof Combo) {
+ ((Combo) widget).paste();
+ return;
+ }
super.runWithEvent(event);
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksConfigurationFormPage.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -11,12 +11,9 @@
package org.jboss.tools.smooks.configuration.editors;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Enumeration;
import java.util.List;
-import java.util.Properties;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
@@ -25,7 +22,6 @@
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -42,20 +38,17 @@
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator;
-import org.jboss.tools.smooks.configuration.editors.wizard.IStructuredDataSelectionWizard;
import org.jboss.tools.smooks.configuration.editors.wizard.StructuredDataSelectionWizard;
import org.jboss.tools.smooks.configuration.validate.ISmooksModelValidateListener;
+import org.jboss.tools.smooks.model.graphics.ext.ISmooksGraphChangeListener;
import org.jboss.tools.smooks.model.graphics.ext.InputType;
-import org.jboss.tools.smooks.model.graphics.ext.ParamType;
-import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtFactory;
import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
import org.jboss.tools.smooks.model.smooks.DocumentRoot;
-import org.jboss.tools.smooks10.model.smooks.util.SmooksModelUtils;
/**
* @author Dart Peng (dpeng(a)redhat.com) Date Apr 1, 2009
*/
-public class SmooksConfigurationFormPage extends FormPage implements ISmooksModelValidateListener {
+public class SmooksConfigurationFormPage extends FormPage implements ISmooksModelValidateListener , ISmooksGraphChangeListener {
private SmooksMasterDetailBlock masterDetailBlock = null;
@@ -63,6 +56,7 @@
public SmooksConfigurationFormPage(FormEditor editor, String id, String title) {
super(editor, id, title);
+ ((SmooksMultiFormEditor)editor).getSmooksGraphicsExt().addSmooksGraphChangeListener(this);
}
public SmooksConfigurationFormPage(String id, String title) {
@@ -216,54 +210,10 @@
wizard.setSite(getEditorSite());
wizard.setForcePreviousAndNextButtons(true);
StructuredDataSelectionWizardDailog dialog = new StructuredDataSelectionWizardDailog(
- getEditorSite().getShell(), wizard);
- if (dialog.open() == WizardDialog.OK) {
- IStructuredDataSelectionWizard wizard1 = dialog.getCurrentCreationWizard();
- String type = wizard1.getInputDataTypeID();
- String path = wizard1.getStructuredDataSourcePath();
- SmooksGraphicsExtType extType = getSmooksGraphicsExtType();
- if (type != null && path != null && extType != null) {
- String[] values = path.split(";");
- for (int i = 0; i < values.length; i++) {
- String value = values[i];
- value = value.trim();
- if (value.length() == 0)
- continue;
- InputType input = SmooksGraphicsExtFactory.eINSTANCE.createInputType();
- input.setType(type);
- ParamType param = SmooksGraphicsExtFactory.eINSTANCE.createParamType();
- param.setValue(value);
- param.setName(SmooksModelUtils.PARAM_NAME_PATH);
- input.getParam().add(param);
- List<ParamType> params = generateExtParams(type, path, wizard1.getProperties());
- input.getParam().addAll(params);
- extType.getInput().add(input);
- }
- try {
- extType.eResource().save(Collections.emptyMap());
- inputDataViewer.refresh();
- } catch (IOException e) {
- SmooksConfigurationActivator.getDefault().log(e);
- }
- }
- }
+ getEditorSite().getShell(), wizard , getSmooksGraphicsExtType());
+ dialog.show();
}
-
- private List<ParamType> generateExtParams(String type, String path, Properties properties) {
- List<ParamType> lists = new ArrayList<ParamType>();
- if (properties != null) {
- Enumeration<?> enumerations = properties.keys();
- while (enumerations.hasMoreElements()) {
- Object key = (Object) enumerations.nextElement();
- ParamType param = SmooksGraphicsExtFactory.eINSTANCE.createParamType();
- param.setValue(properties.getProperty(key.toString()));
- param.setName(key.toString());
- lists.add(param);
- }
- }
- return lists;
- }
-
+
public void setSelectionToViewer(final Collection<?> collection) {
if (masterDetailBlock != null && masterDetailBlock.getSmooksTreeViewer() != null) {
// I don't know if this should be run this deferred
@@ -297,4 +247,8 @@
}
+ public void saveComplete(SmooksGraphicsExtType extType) {
+ inputDataViewer.refresh();
+ }
+
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMasterDetailBlock.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -180,8 +180,6 @@
}
}, SmooksConfigurationActivator.getDefault().getWorkbench().getDecoratorManager().getLabelDecorator()));
- if(true)
- {
smooksTreeViewer.setComparer(new IElementComparer() {
/*
@@ -210,7 +208,6 @@
}
});
- }
smooksTreeViewer.setFilters(new ViewerFilter[] { new TextEObjectModelFilter() });
Object smooksModel = ((SmooksMultiFormEditor) this.formEditor).getSmooksModel();
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/SmooksMultiFormEditor.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -37,8 +37,11 @@
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.DefaultDOMHandlerImpl;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.DeleteCommand;
import org.eclipse.emf.edit.command.SetCommand;
@@ -84,6 +87,7 @@
import org.jboss.tools.smooks.model.smooks.provider.SmooksItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.xsl.provider.XslItemProviderAdapterFactory;
import org.jboss.tools.smooks10.model.smooks.util.SmooksResourceFactoryImpl;
+import org.w3c.dom.Node;
/**
*
@@ -114,6 +118,8 @@
private SmooksMarkerHelper markerHelper = new SmooksMarkerHelper();
private List<Diagnostic> diagnosticList;
+
+ private Object smooksDOMModel;
public SmooksMultiFormEditor() {
super();
@@ -417,9 +423,21 @@
editingDomain.getResourceSet().getResources().add(smooksResource);
super.init(site, input);
+
validator = new SmooksModelValidator();
addValidateListener(this);
setDiagnosticList(validator.validate(smooksModel.eResource().getContents(), editingDomain));
+// ((XMLResource)smooksResource).save(null, Collections.emptyMap(), new DefaultDOMHandlerImpl(){
+//
+// /* (non-Javadoc)
+// * @see org.eclipse.emf.ecore.xmi.DOMHandler#recordValues(org.w3c.dom.Node, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object)
+// */
+// public void recordValues(Node node, EObject container, EStructuralFeature feature, Object value) {
+// super.recordValues(node, container, feature, value);
+// System.out.println(value + ":" + node);
+// }
+//
+// });
// if success to open editor , check if there isn't ext file and create
// a new one
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/StructuredDataSelectionWizardDailog.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/StructuredDataSelectionWizardDailog.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/StructuredDataSelectionWizardDailog.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -10,10 +10,25 @@
******************************************************************************/
package org.jboss.tools.smooks.configuration.editors;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator;
import org.jboss.tools.smooks.configuration.editors.wizard.IStructuredDataSelectionWizard;
+import org.jboss.tools.smooks.model.graphics.ext.ISmooksGraphChangeListener;
+import org.jboss.tools.smooks.model.graphics.ext.InputType;
+import org.jboss.tools.smooks.model.graphics.ext.ParamType;
+import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtFactory;
+import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
+import org.jboss.tools.smooks10.model.smooks.util.SmooksModelUtils;
/**
* @author Dart Peng
@@ -21,9 +36,12 @@
*/
public class StructuredDataSelectionWizardDailog extends WizardDialog {
+ protected SmooksGraphicsExtType smooksGraphicsExtType;
+
public StructuredDataSelectionWizardDailog(Shell parentShell,
- IWizard newWizard) {
+ IWizard newWizard,SmooksGraphicsExtType extType) {
super(parentShell, newWizard);
+ this.setSmooksGraphicsExtType(extType);
}
public IStructuredDataSelectionWizard getCurrentCreationWizard(){
@@ -33,5 +51,78 @@
}
return null;
}
+
+
+
+ /**
+ * @return the smooksGraphicsExtType
+ */
+ public SmooksGraphicsExtType getSmooksGraphicsExtType() {
+ return smooksGraphicsExtType;
+ }
+ /**
+ * @param smooksGraphicsExtType the smooksGraphicsExtType to set
+ */
+ public void setSmooksGraphicsExtType(SmooksGraphicsExtType smooksGraphicsExtType) {
+ this.smooksGraphicsExtType = smooksGraphicsExtType;
+ }
+
+
+ private List<ParamType> generateExtParams(String type, String path, Properties properties) {
+ List<ParamType> lists = new ArrayList<ParamType>();
+ if (properties != null) {
+ Enumeration<?> enumerations = properties.keys();
+ while (enumerations.hasMoreElements()) {
+ Object key = (Object) enumerations.nextElement();
+ ParamType param = SmooksGraphicsExtFactory.eINSTANCE.createParamType();
+ param.setValue(properties.getProperty(key.toString()));
+ param.setName(key.toString());
+ lists.add(param);
+ }
+ }
+ return lists;
+ }
+
+
+ public int show() {
+ int openResult = this.open();
+ if (openResult == WizardDialog.OK) {
+ IStructuredDataSelectionWizard wizard1 = this.getCurrentCreationWizard();
+ String type = wizard1.getInputDataTypeID();
+ String path = wizard1.getStructuredDataSourcePath();
+ SmooksGraphicsExtType extType = getSmooksGraphicsExtType();
+ if (type != null && path != null && extType != null) {
+ String[] values = path.split(";");
+ for (int i = 0; i < values.length; i++) {
+ String value = values[i];
+ value = value.trim();
+ if (value.length() == 0)
+ continue;
+ InputType input = SmooksGraphicsExtFactory.eINSTANCE.createInputType();
+ input.setType(type);
+ ParamType param = SmooksGraphicsExtFactory.eINSTANCE.createParamType();
+ param.setValue(value);
+ param.setName(SmooksModelUtils.PARAM_NAME_PATH);
+ input.getParam().add(param);
+ List<ParamType> params = generateExtParams(type, path, wizard1.getProperties());
+ input.getParam().addAll(params);
+ extType.getInput().add(input);
+ }
+ try {
+ extType.eResource().save(Collections.emptyMap());
+ List<ISmooksGraphChangeListener> listeners = extType.getChangeListeners();
+ for (Iterator<?> iterator = listeners.iterator(); iterator.hasNext();) {
+ ISmooksGraphChangeListener smooksGraphChangeListener = (ISmooksGraphChangeListener) iterator
+ .next();
+ smooksGraphChangeListener.saveComplete(extType);
+ }
+ } catch (IOException e) {
+ SmooksConfigurationActivator.getDefault().log(e);
+ }
+ }
+ }
+ return openResult;
+ }
+
}
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/smooks/ResourceConfigTypeUICreator.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/smooks/ResourceConfigTypeUICreator.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/smooks/ResourceConfigTypeUICreator.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -44,7 +44,7 @@
if (feature == SmooksPackage.eINSTANCE.getResourceConfigType_Selector()) {
SmooksGraphicsExtType ext = formEditor.getSmooksGraphicsExt();
if (ext != null) {
- return SmooksUIUtils.createSelectorFieldEditor(toolkit, parent, propertyDescriptor, model, ext);
+ return SmooksUIUtils.createSelectorFieldEditor(toolkit, parent, propertyDescriptor, model, ext,formEditor);
}
}
if (feature == SmooksPackage.eINSTANCE.getResourceConfigType_SelectorNamespace()) {
Modified: trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-05-20 19:17:15 UTC (rev 15377)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/configuration/editors/uitls/SmooksUIUtils.java 2009-05-21 05:43:30 UTC (rev 15378)
@@ -68,6 +68,7 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.IFormColors;
@@ -123,7 +124,7 @@
public static int VALUE_TYPE_CDATA = 0;
public static final int SELECTOR_EXPAND_MAX_LEVEL = 5;
-
+
public static void createMixedTextFieldEditor(String label, AdapterFactoryEditingDomain editingdomain,
FormToolkit toolkit, Composite parent, Object model, boolean linkLabel, IHyperlinkListener listener) {
createMixedTextFieldEditor(label, editingdomain, toolkit, parent, model, false, 0, linkLabel, false, listener,
@@ -589,16 +590,17 @@
}
public static AttributeFieldEditPart createSelectorFieldEditor(FormToolkit toolkit, Composite parent,
- final IItemPropertyDescriptor propertyDescriptor, Object model, final SmooksGraphicsExtType extType) {
- return createSelectorFieldEditor(null, toolkit, parent, propertyDescriptor, model, extType);
+ final IItemPropertyDescriptor propertyDescriptor, Object model, final SmooksGraphicsExtType extType,
+ final IEditorPart currentEditorPart) {
+ return createSelectorFieldEditor(null, toolkit, parent, propertyDescriptor, model, extType, currentEditorPart);
}
public static AttributeFieldEditPart createSelectorFieldEditor(String labelText, FormToolkit toolkit,
Composite parent, final IItemPropertyDescriptor propertyDescriptor, Object model,
- final SmooksGraphicsExtType extType) {
+ final SmooksGraphicsExtType extType, final IEditorPart currentEditorPart) {
return createDialogFieldEditor(labelText, parent, toolkit, propertyDescriptor, "Browse", new IFieldDialog() {
public Object open(Shell shell) {
- SelectoreSelectionDialog dialog = new SelectoreSelectionDialog(shell, extType);
+ SelectoreSelectionDialog dialog = new SelectoreSelectionDialog(shell, extType, currentEditorPart);
if (dialog.open() == Dialog.OK) {
Object currentSelection = dialog.getCurrentSelection();
SelectorAttributes sa = dialog.getSelectorAttributes();
@@ -1137,19 +1139,21 @@
}
}
}
-
- private static void expandSelectorViewer(IXMLStructuredObject model,TreeViewer viewer , List<String> expandedModel , int level){
- if(level >= SELECTOR_EXPAND_MAX_LEVEL) return;
+
+ private static void expandSelectorViewer(IXMLStructuredObject model, TreeViewer viewer, List<String> expandedModel,
+ int level) {
+ if (level >= SELECTOR_EXPAND_MAX_LEVEL)
+ return;
level++;
- if(expandedModel.contains(model.getNodeName())){
+ if (expandedModel.contains(model.getNodeName())) {
return;
- }else{
+ } else {
expandedModel.add(model.getNodeName());
viewer.expandToLevel(model, 0);
List<IXMLStructuredObject> children = model.getChildren();
for (Iterator<?> iterator = children.iterator(); iterator.hasNext();) {
IXMLStructuredObject structuredObject = (IXMLStructuredObject) iterator.next();
- expandSelectorViewer(structuredObject, viewer,expandedModel,level);
+ expandSelectorViewer(structuredObject, viewer, expandedModel, level);
}
}
}
@@ -1158,7 +1162,7 @@
for (Iterator<?> iterator = models.iterator(); iterator.hasNext();) {
Object model = (Object) iterator.next();
if (model instanceof IXMLStructuredObject) {
- expandSelectorViewer((IXMLStructuredObject)model,viewer,new ArrayList<String>(),0);
+ expandSelectorViewer((IXMLStructuredObject) model, viewer, new ArrayList<String>(), 0);
}
}
}
15 years, 4 months