JBoss Tools SVN: r6887 - in trunk: jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2008-03-12 08:33:14 -0400 (Wed, 12 Mar 2008)
New Revision: 6887
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/TilesContextHelp.xml
trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/ITilesHelpContextIds.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/plugin.xml
trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/editor/TilesCompoundEditor.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1692
Added: trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/TilesContextHelp.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/TilesContextHelp.xml (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/TilesContextHelp.xml 2008-03-12 12:33:14 UTC (rev 6887)
@@ -0,0 +1,6 @@
+<contexts>
+ <context id="tiles_editor" title="Tiles Editor">
+ <description>Tiles Editor</description>
+ <topic href="JSFStrutsTools.html#GraphicalEditorForTilesFiles132" label="Graphical Editor for Tiles Files"/>
+ </context>
+</contexts>
\ No newline at end of file
Modified: trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/plugin.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/plugin.xml 2008-03-12 11:40:28 UTC (rev 6886)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.doc.user/plugin.xml 2008-03-12 12:33:14 UTC (rev 6887)
@@ -20,5 +20,9 @@
file="JSFContextHelp.xml"
plugin="org.jboss.tools.jsf.ui">
</contexts>
+ <contexts
+ file="TilesContextHelp.xml"
+ plugin="org.jboss.tools.jst.web.tiles.ui">
+ </contexts>
</extension>
</plugin>
Added: trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/ITilesHelpContextIds.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/ITilesHelpContextIds.java (rev 0)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/ITilesHelpContextIds.java 2008-03-12 12:33:14 UTC (rev 6887)
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and 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:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.jst.web.tiles.ui;
+
+public interface ITilesHelpContextIds {
+ public static final String PREFIX = TilesUIPlugin.PLUGIN_ID + '.';
+
+ public static final String TILES_EDITOR = PREFIX + "tiles_editor";
+
+
+}
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/editor/TilesCompoundEditor.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/editor/TilesCompoundEditor.java 2008-03-12 11:40:28 UTC (rev 6886)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.tiles.ui/src/org/jboss/tools/jst/web/tiles/ui/editor/TilesCompoundEditor.java 2008-03-12 12:33:14 UTC (rev 6887)
@@ -10,18 +10,19 @@
******************************************************************************/
package org.jboss.tools.jst.web.tiles.ui.editor;
+import org.eclipse.gef.ui.actions.ActionRegistry;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
import org.jboss.tools.common.editor.AbstractSelectionProvider;
import org.jboss.tools.common.editor.ObjectMultiPageEditor;
import org.jboss.tools.common.editor.ObjectTextEditor;
-import org.jboss.tools.common.model.plugin.ModelPlugin;
+import org.jboss.tools.common.gef.outline.xpl.DiagramContentOutlinePage;
import org.jboss.tools.common.model.ui.texteditors.XMLTextEditorComponent;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-import org.jboss.tools.common.gef.outline.xpl.DiagramContentOutlinePage;
import org.jboss.tools.jst.web.messages.xpl.WebUIMessages;
import org.jboss.tools.jst.web.tiles.model.TilesConfigFilteredTreeConstraint;
+import org.jboss.tools.jst.web.tiles.ui.ITilesHelpContextIds;
import org.jboss.tools.jst.web.tiles.ui.TilesUIPlugin;
public class TilesCompoundEditor extends ObjectMultiPageEditor {
@@ -31,7 +32,13 @@
public TilesCompoundEditor() {
outline.addFilter(constraint);
}
-
+
+ protected Composite createPageContainer(Composite parent) {
+ Composite composite = super.createPageContainer(parent);
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, ITilesHelpContextIds.TILES_EDITOR);
+ return composite;
+ }
+
protected void doCreatePages() {
if (isAppropriateNature()) {
treeFormPage = createTreeFormPage();
16 years, 3 months
JBoss Tools SVN: r6886 - trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors.
by jbosstools-commits@lists.jboss.org
Author: dgeraskov
Date: 2008-03-12 07:40:28 -0400 (Wed, 12 Mar 2008)
New Revision: 6886
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1871
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java 2008-03-12 11:21:12 UTC (rev 6885)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/ReverseEngineeringEditor.java 2008-03-12 11:40:28 UTC (rev 6886)
@@ -27,12 +27,14 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IKeyBindingService;
import org.eclipse.ui.INestableKeyBindingService;
import org.eclipse.ui.PartInitException;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.xml.core.internal.provisional.IXMLPreferenceNames;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
import org.hibernate.HibernateException;
import org.hibernate.cfg.Configuration;
@@ -118,7 +120,10 @@
pageNameToIndex.put(RevEngTablesPage.PART_ID, new Integer(i));
i++;
- // setActivePage( 0 );
+ int activePageIndex = getPreferenceStore().getInt(IXMLPreferenceNames.LAST_ACTIVE_PAGE);
+ if ((activePageIndex >= 0) && (activePageIndex < getPageCount())) {
+ setActivePage(activePageIndex);
+ }
}
/*public void setActivePage(String string) {
@@ -153,6 +158,7 @@
nestableService.activateKeyBindingService(null);
}
}
+ saveLastActivePageIndex(newPageIndex);
super.pageChange(newPageIndex);
}
@@ -245,4 +251,13 @@
}
}
+ private void saveLastActivePageIndex(int newPageIndex) {
+ // save the last active page index to preference store
+ getPreferenceStore().setValue(IXMLPreferenceNames.LAST_ACTIVE_PAGE, newPageIndex);
+ }
+
+ private IPreferenceStore getPreferenceStore() {
+ return MapperPlugin.getDefault().getPreferenceStore();
+ }
+
}
\ No newline at end of file
16 years, 3 months
JBoss Tools SVN: r6885 - trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template.
by jbosstools-commits@lists.jboss.org
Author: dmaliarevich
Date: 2008-03-12 07:21:12 -0400 (Wed, 12 Mar 2008)
New Revision: 6885
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeFacetCreator.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1744, dir attribute added, caption style fixed, code adjustment.
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java 2008-03-12 11:21:02 UTC (rev 6884)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java 2008-03-12 11:21:12 UTC (rev 6885)
@@ -201,7 +201,7 @@
info = new VpeChildrenInfo(group);
creatorInfo.addChildrenInfo(info);
}
-
+
for (int i = 0; i < sourceElements.getColumnCount(); i++) {
SourceColumnElements column = sourceElements.getColumn(i);
info.addSourceChild(column.getColumn());
@@ -416,4 +416,5 @@
}
return null;
}
+
}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeFacetCreator.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeFacetCreator.java 2008-03-12 11:21:02 UTC (rev 6884)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeFacetCreator.java 2008-03-12 11:21:12 UTC (rev 6885)
@@ -78,7 +78,7 @@
}
}
- nsIDOMNode cell = null;
+ nsIDOMElement cell = null;
int columnsCount = getColumnsCount(sourceParent);
if (isHeader) {
cell = makeCell(columnsCount, HTML.TAG_TH, visualDocument);
@@ -111,10 +111,10 @@
return sourceNode.getParentNode();
}
- private void setCellClass(nsIDOMNode cell, String className) {
+ private void setCellClass(nsIDOMElement cell, String className) {
if (cell != null) {
if (className != null && className.trim().length() > 0) {
- ((nsIDOMElement)cell).setAttribute("class", className);
+ cell.setAttribute("class", className);
}
}
}
@@ -126,16 +126,16 @@
* @param cell the cell
* @param captionStyle the caption style
*/
- private void setCaptionStyle(Node sourceParent, nsIDOMNode cell, String captionStyle) {
+ private void setCaptionStyle(Node sourceParent, nsIDOMElement cell, String captionStyle) {
if (cell != null) {
String resultStyle = "";
- if (captionStyle != null && captionStyle.trim().length() > 0) {
+ if (captionStyle != null) {
+ if (!(captionStyle.lastIndexOf("width") > -1)) {
+ resultStyle += "width: 100%; ";
+ }
resultStyle += captionStyle;
}
-// if (!(captionStyle.lastIndexOf("width") > -1)) {
-// resultStyle += "width: 100%; ";
-// }
- ((nsIDOMElement)cell).setAttribute(HTML.ATTR_STYLE, resultStyle);
+ cell.setAttribute(HTML.ATTR_STYLE, resultStyle);
}
}
@@ -162,7 +162,7 @@
return count;
}
- private nsIDOMNode makeCell(int columnCount, String cellTag, nsIDOMDocument visualDocument) {
+ private nsIDOMElement makeCell(int columnCount, String cellTag, nsIDOMDocument visualDocument) {
nsIDOMElement visualCell = visualDocument.createElement(cellTag);
if (columnCount > 1) {
visualCell.setAttribute("colspan", "" + columnCount);
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java 2008-03-12 11:21:02 UTC (rev 6884)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeTemplateManager.java 2008-03-12 11:21:12 UTC (rev 6885)
@@ -149,7 +149,7 @@
static final String ATTR_DATATABLE_FOOTER_CLASS = "footerClass";
static final String ATTR_DATATABLE_ROW_CLASSES = "rowClasses";
static final String ATTR_DATATABLE_COLUMN_CLASSES = "columnClasses";
- static final String[] ATTR_DATATABLE_PROPERTIES = {"width", "bgcolor","border","cellpadding","cellspacing","frame","rules","class","style","title"};
+ static final String[] ATTR_DATATABLE_PROPERTIES = {"width", "bgcolor","border","cellpadding","cellspacing","frame","rules","class","style","title", "dir"};
public static final String ATTR_LINK_HREF = "href";
public static final String ATTR_LINK_REL = "rel";
16 years, 3 months
JBoss Tools SVN: r6884 - trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates.
by jbosstools-commits@lists.jboss.org
Author: dmaliarevich
Date: 2008-03-12 07:21:02 -0400 (Wed, 12 Mar 2008)
New Revision: 6884
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml
Log:
http://jira.jboss.com/jira/browse/JBIDE-1744, dir attribute added, caption style fixed, code adjustment.
Modified: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml 2008-03-12 08:18:55 UTC (rev 6883)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.jsf/templates/vpe-templates-jsf.xml 2008-03-12 11:21:02 UTC (rev 6884)
@@ -927,7 +927,7 @@
cellspacing="{@cellspacing}" columnClasses="{@columnClasses}"
footerClass="{@footerClass}" headerClass="{@headerClass}"
rowClasses="{@rowClasses}" frame="{@frame}" rules="{@rules}"
- class="{@styleClass}" style="{@style}" title="{tagstring()}" />
+ class="{@styleClass}" style="{@style}" title="{tagstring()}" dir="{@dir}"/>
<vpe:resize>
<vpe:width width-attr="style.width" />
<vpe:height height-attr="style.height" />
16 years, 3 months
JBoss Tools SVN: r6883 - trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/reveng.
by jbosstools-commits@lists.jboss.org
Author: vyemialyanchyk
Date: 2008-03-12 04:18:55 -0400 (Wed, 12 Mar 2008)
New Revision: 6883
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/reveng/TablePropertiesBlock.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1870
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/reveng/TablePropertiesBlock.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/reveng/TablePropertiesBlock.java 2008-03-12 07:36:35 UTC (rev 6882)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.mapper/src/org/hibernate/eclipse/mapper/editors/reveng/TablePropertiesBlock.java 2008-03-12 08:18:55 UTC (rev 6883)
@@ -145,6 +145,8 @@
Map columns = new HashMap();
if(lds!=null) {
+ dialog.setTitle("Add Tables & Columns");
+ dialog.setMessage("Select tables and columns");
dialog.setInput(lds);
dialog.setContainerMode(true);
dialog.open();
16 years, 3 months
JBoss Tools SVN: r6882 - trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template.
by jbosstools-commits@lists.jboss.org
Author: dmaliarevich
Date: 2008-03-12 03:36:35 -0400 (Wed, 12 Mar 2008)
New Revision: 6882
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableColumnCreator.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1873, fixes, code adjustment
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableColumnCreator.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableColumnCreator.java 2008-03-12 00:26:47 UTC (rev 6881)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableColumnCreator.java 2008-03-12 07:36:35 UTC (rev 6882)
@@ -64,8 +64,8 @@
creatorInfo.addChildrenInfo(info);
String styleClass = "";
- String tableHeaderClass = getNodeAttrValue(sourceNode.getParentNode(), "headerClass");
- String columnHeaderClass = getNodeAttrValue(sourceNode, "headerClass");
+ String tableHeaderClass = getNodeAttrValue(sourceNode.getParentNode(), VpeTemplateManager.ATTR_DATATABLE_HEADER_CLASS);
+ String columnHeaderClass = getNodeAttrValue(sourceNode, VpeTemplateManager.ATTR_DATATABLE_HEADER_CLASS);
if (null != columnHeaderClass && !"".equalsIgnoreCase(columnHeaderClass)) {
styleClass = columnHeaderClass;
} else if (null != tableHeaderClass && !"".equalsIgnoreCase(tableHeaderClass)) {
@@ -82,8 +82,8 @@
creatorInfo.addChildrenInfo(info);
styleClass = "";
- String tableFooterClass = getNodeAttrValue(sourceNode.getParentNode(), "footerClass");
- String columnFooterClass = getNodeAttrValue(sourceNode, "footerClass");
+ String tableFooterClass = getNodeAttrValue(sourceNode.getParentNode(), VpeTemplateManager.ATTR_DATATABLE_FOOTER_CLASS);
+ String columnFooterClass = getNodeAttrValue(sourceNode, VpeTemplateManager.ATTR_DATATABLE_FOOTER_CLASS);
if (null != columnFooterClass && !"".equalsIgnoreCase(columnFooterClass)) {
styleClass = columnFooterClass;
} else if (null != tableFooterClass && !"".equalsIgnoreCase(tableFooterClass)) {
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java 2008-03-12 00:26:47 UTC (rev 6881)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/VpeDataTableCreator.java 2008-03-12 07:36:35 UTC (rev 6882)
@@ -27,9 +27,11 @@
import org.mozilla.interfaces.nsIDOMAttr;
import org.mozilla.interfaces.nsIDOMDocument;
import org.mozilla.interfaces.nsIDOMElement;
+import org.mozilla.interfaces.nsIDOMHTMLTableCellElement;
import org.mozilla.interfaces.nsIDOMNamedNodeMap;
import org.mozilla.interfaces.nsIDOMNode;
import org.mozilla.interfaces.nsIDOMNodeList;
+import org.mozilla.xpcom.XPCOMException;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -44,6 +46,7 @@
private VpeExpression columnClassesExpr;
private static final String ATTR_STYLE = "style";
+ private static final String ATTR_CLASS = "class";
private static final String ATTR_WIDTH = "width";
private static final String ATTR_BORDER = "border";
private static final String HIDDEN_BORDER_STYLE = "border: 0px hidden;" ;
@@ -332,8 +335,14 @@
for (long i = 0; i < count; i++) {
nsIDOMNode child = children.item(i);
if (child != null && child.getNodeType() == nsIDOMNode.ELEMENT_NODE) {
- ((Element)child).setAttribute("class", classes[ind]);
- ind = ind < (classes.length - 1) ? ind + 1 : 0;
+ try {
+ nsIDOMHTMLTableCellElement cell = (nsIDOMHTMLTableCellElement) child
+ .queryInterface(nsIDOMHTMLTableCellElement.NS_IDOMHTMLTABLECELLELEMENT_IID);
+ cell.setAttribute(ATTR_CLASS, classes[ind]);
+ ind = ind < (classes.length - 1) ? ind + 1 : 0;
+ } catch (XPCOMException ex) {
+ // just ignore this exception
+ }
}
}
}
@@ -346,7 +355,13 @@
for (long i = 0; i < count; i++) {
nsIDOMNode child = children.item(i);
if (child != null && child.getNodeType() == nsIDOMNode.ELEMENT_NODE) {
- ((nsIDOMElement)child).removeAttribute("class");
+ try {
+ nsIDOMHTMLTableCellElement cell = (nsIDOMHTMLTableCellElement) child
+ .queryInterface(nsIDOMHTMLTableCellElement.NS_IDOMHTMLTABLECELLELEMENT_IID);
+ cell.removeAttribute(ATTR_CLASS);
+ } catch (XPCOMException ex) {
+ // just ignore this exception
+ }
}
}
}
@@ -357,22 +372,22 @@
String[] rowClasses = getClasses(value);
String rowClass = (rowClasses != null && rowClasses.length > 0) ? rowClasses[0] : null;
if (rowClass.trim().length() > 0) {
- row.setAttribute("class", rowClass);
+ row.setAttribute(ATTR_CLASS, rowClass);
} else {
- row.removeAttribute("class");
+ row.removeAttribute(ATTR_CLASS);
}
}
}
private void setRowDisplayStyle(nsIDOMElement row, boolean visible) {
if (row != null) {
- row.setAttribute("style", "display:" + (visible ? "" : "none"));
+ row.setAttribute(ATTR_STYLE, "display:" + (visible ? "" : "none"));
}
}
private void removeRowClass(nsIDOMElement row) {
if (row != null) {
- row.removeAttribute("class");
+ row.removeAttribute(ATTR_CLASS);
}
}
16 years, 3 months
JBoss Tools SVN: r6881 - trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2008-03-11 20:26:47 -0400 (Tue, 11 Mar 2008)
New Revision: 6881
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamActionWizard.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseOperation.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamFormWizard.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1322
fix path for creating tests
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamActionWizard.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamActionWizard.java 2008-03-11 20:58:09 UTC (rev 6880)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamActionWizard.java 2008-03-12 00:26:47 UTC (rev 6881)
@@ -86,10 +86,10 @@
"${" + IParameter.SEAM_PROJECT_SRC_ACTION + "}/${" + ISeamFacetDataModelProperties.SESSION_BEAN_PACKAGE_PATH + "}/${" + IParameter.SEAM_LOCAL_INTERFACE_NAME +"}.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
ACTION_WAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/ActionTest.java", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
ACTION_WAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/testng.xml", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
ACTION_WAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/view/action.xhtml", //$NON-NLS-1$ //$NON-NLS-2$
"${" + IParameter.SEAM_PROJECT_WEBCONTENT_PATH + "}/${" + IParameter.SEAM_PAGE_NAME +"}.xhtml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -103,10 +103,10 @@
"${" + IParameter.SEAM_PROJECT_SRC_ACTION + "}/${" + ISeamFacetDataModelProperties.SESSION_BEAN_PACKAGE_PATH + "}/${" + IParameter.SEAM_LOCAL_INTERFACE_NAME +"}.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
ACTION_EAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/ActionTest.java", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
ACTION_EAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/testng.xml", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
ACTION_EAR_MAPPING.add(ACTION_WAR_MAPPING.get(3));
}
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseOperation.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseOperation.java 2008-03-11 20:58:09 UTC (rev 6880)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamBaseOperation.java 2008-03-12 00:26:47 UTC (rev 6881)
@@ -99,6 +99,7 @@
vars.put(IParameter.SEAM_PROJECT_SRC_MODEL,seamPrjSet.getModelFolder().getLocation().toFile().toString());
vars.put(IParameter.SEAM_EJB_PROJECT_LOCATION_PATH,seamPrjSet.getEjbProject()!=null?seamPrjSet.getEjbProject().getLocation().toFile().toString():"");
vars.put(IParameter.SEAM_TEST_PROJECT_LOCATION_PATH,seamPrjSet.getTestProject().getLocation().toFile().toString());
+ vars.put(IParameter.TEST_SOURCE_FOLDER,seamPrjSet.getTestsFolder().getLocation().toFile().toString());
vars.put(IParameter.SESSION_BEAN_PACKAGE_PATH, actionFolder.replace('.','/'));
vars.put(IParameter.SESSION_BEAN_PACKAGE_NAME, actionFolder);
vars.put(IParameter.TEST_CASES_PACKAGE_PATH, testFolder.replace('.','/'));
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamFormWizard.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamFormWizard.java 2008-03-11 20:58:09 UTC (rev 6880)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamFormWizard.java 2008-03-12 00:26:47 UTC (rev 6881)
@@ -81,10 +81,10 @@
"${" + IParameter.SEAM_PROJECT_SRC_ACTION + "}/${" + ISeamFacetDataModelProperties.SESSION_BEAN_PACKAGE_PATH + "}/${" + IParameter.SEAM_LOCAL_INTERFACE_NAME +"}.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
FORM_WAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/FormTest.java", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
FORM_WAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/testng.xml", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
FORM_WAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/view/form.xhtml", //$NON-NLS-1$ //$NON-NLS-2$
"${" + IParameter.SEAM_PROJECT_WEBCONTENT_PATH + "}/${" + IParameter.SEAM_PAGE_NAME +"}.xhtml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -98,10 +98,10 @@
"${" + IParameter.SEAM_PROJECT_SRC_ACTION + "}/${" + ISeamFacetDataModelProperties.SESSION_BEAN_PACKAGE_PATH + "}/${" + IParameter.SEAM_LOCAL_INTERFACE_NAME +"}.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
FORM_EAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/FormTest.java", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.java"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
FORM_EAR_MAPPING.add(new String[]{
"${" + ISeamFacetDataModelProperties.JBOSS_SEAM_HOME + "}/seam-gen/test/testng.xml", //$NON-NLS-1$ //$NON-NLS-2$
- "${" + IParameter.SEAM_TEST_PROJECT_LOCATION_PATH + "}/test-src/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "${" + IParameter.TEST_SOURCE_FOLDER + "}/${" + ISeamFacetDataModelProperties.TEST_CASES_PACKAGE_PATH + "}/${"+ IParameter.SEAM_LOCAL_INTERFACE_NAME +"}Test.xml"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
FORM_EAR_MAPPING.add(FORM_WAR_MAPPING.get(3));
}
16 years, 3 months
JBoss Tools SVN: r6880 - in trunk/core: plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant and 8 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-03-11 16:58:09 -0400 (Tue, 11 Mar 2008)
New Revision: 6880
Added:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveAction.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelRootNode.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveActionImpl.java
Removed:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchiveNodeFactory.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchive.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveImpl.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java
Log:
Archives API Refactor. Renamed IArchiveModelNode to IArchiveModelRootNode (and some methods accordingly). Continued to implement IArchiveAction and it's implementations and move forward on unit tests.
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -41,7 +41,7 @@
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor;
import org.jboss.ide.eclipse.archives.core.util.internal.TrueZipUtil;
@@ -92,7 +92,7 @@
*/
protected void clean(IProgressMonitor monitor) throws CoreException {
IPath p = getProject().getLocation();
- IArchiveModelNode root = ArchivesModel.instance().getRoot(p);
+ IArchiveModelRootNode root = ArchivesModel.instance().getRoot(p);
if(root!=null) {
IArchiveNode[] nodes = root.getChildren(IArchiveNode.TYPE_ARCHIVE);
for( int i = 0; i < nodes.length; i++ ) {
@@ -150,7 +150,7 @@
final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
final int count = workspaceRoot.getLocation().segmentCount();
- IArchiveModelNode root = ArchivesModel.instance().getRoot(getProject().getLocation());
+ IArchiveModelRootNode root = ArchivesModel.instance().getRoot(getProject().getLocation());
if(root!=null) {
root.accept(new IArchiveNodeVisitor () {
public boolean visit (IArchiveNode node) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -13,7 +13,7 @@
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor;
@@ -65,7 +65,7 @@
}
}
- IArchiveModelNode node = ArchivesModel.instance().getRoot(path);
+ IArchiveModelRootNode node = ArchivesModel.instance().getRoot(path);
final ArrayList<String> requiredProjects = new ArrayList<String>();
node.accept(new IArchiveNodeVisitor() {
public boolean visit(IArchiveNode node) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -31,7 +31,7 @@
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
import org.jboss.ide.eclipse.archives.core.util.internal.ModelTruezipBridge;
@@ -60,7 +60,7 @@
EventManager.cleanProjectBuild(project);
EventManager.startedBuild(project);
- IArchiveModelNode root = ArchivesModel.instance().getRoot(project);
+ IArchiveModelRootNode root = ArchivesModel.instance().getRoot(project);
if( root == null ) return;
IArchiveNode[] nodes = root.getChildren(IArchiveNode.TYPE_ARCHIVE);
for( int i = 0; i < nodes.length; i++ ) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -28,7 +28,7 @@
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
@@ -162,8 +162,8 @@
private void nodeAdded(IArchiveNode added) {
if( added == null ) return;
- if( added.getNodeType() == IArchiveNode.TYPE_MODEL) {
- IArchiveNode[] archives = ((IArchiveModelNode)added).getChildren(IArchiveNode.TYPE_ARCHIVE);
+ if( added.getNodeType() == IArchiveNode.TYPE_MODEL_ROOT) {
+ IArchiveNode[] archives = ((IArchiveModelRootNode)added).getChildren(IArchiveNode.TYPE_ARCHIVE);
for( int i = 0; i < archives.length; i++ ) {
nodeAdded(archives[i]);
}
@@ -186,7 +186,7 @@
private void nodeRemoved(IArchiveNode removed) {
if( removed == null ) return;
- if( removed.getNodeType() == IArchiveNode.TYPE_MODEL ) {
+ if( removed.getNodeType() == IArchiveNode.TYPE_MODEL_ROOT ) {
// remove all top level items
IArchiveNode[] kids = removed.getChildren(IArchiveNode.TYPE_ARCHIVE);
for( int i = 0; i < kids.length; i++ ) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchiveNodeFactory.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchiveNodeFactory.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchiveNodeFactory.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -21,6 +21,7 @@
*/
package org.jboss.ide.eclipse.archives.core.model;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveActionImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFileSetImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFolderImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveImpl;
@@ -42,4 +43,8 @@
public static IArchiveFolder createFolder() {
return new ArchiveFolderImpl();
}
+
+ public static IArchiveAction createAction() {
+ return new ArchiveActionImpl();
+ }
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -118,9 +118,9 @@
* (non-Javadoc)
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getModelNodes()
*/
- public IArchiveModelNode[] getModelNodes() {
+ public IArchiveModelRootNode[] getModelNodes() {
Collection<ArchiveModelNode> c = archivesRoot.values();
- return (IArchiveModelNode[]) c.toArray(new IArchiveModelNode[c.size()]);
+ return (IArchiveModelRootNode[]) c.toArray(new IArchiveModelRootNode[c.size()]);
}
/*
@@ -128,7 +128,7 @@
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#accept(org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor)
*/
public boolean accept(IArchiveNodeVisitor visitor) {
- IArchiveModelNode[] children = getModelNodes();
+ IArchiveModelRootNode[] children = getModelNodes();
boolean keepGoing = true;
if (keepGoing)
for (int i = 0; i < children.length; i++)
@@ -138,7 +138,7 @@
}
- public IArchiveModelNode getRoot(IPath project) {
+ public IArchiveModelRootNode getRoot(IPath project) {
return (archivesRoot.get(project));
}
@@ -148,7 +148,7 @@
}
@Deprecated
- public void save(IArchiveModelNode modelNode, IProgressMonitor monitor) throws ArchivesModelException {
+ public void save(IArchiveModelRootNode modelNode, IProgressMonitor monitor) throws ArchivesModelException {
modelNode.save(monitor);
}
@@ -156,11 +156,11 @@
return archivesRoot.containsKey(projectPath);
}
- public IArchiveModelNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
+ public IArchiveModelRootNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
return registerProject(projectPath, DEFAULT_PACKAGES_FILE, monitor);
}
- public IArchiveModelNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException {
+ public IArchiveModelRootNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException {
XbPackages packages;
ArchiveModelNode modelNode;
@@ -186,35 +186,36 @@
return modelNode;
}
- public void registerProject(IArchiveModelNode model, IProgressMonitor monitor) {
+ public void registerProject(IArchiveModelRootNode model, IProgressMonitor monitor) {
ArchivesCore.getInstance().preRegisterProject(model.getProjectPath());
xbPackages.put(model.getProjectPath(), ((ArchiveModelNode)model).getXbPackages());
archivesRoot.put(model.getProjectPath(), (ArchiveModelNode)model);
+ model.setModel(this);
fireRegisterProjectEvent((ArchiveModelNode)model);
}
public void unregisterProject(IPath projectPath, IProgressMonitor monitor) {
- IArchiveModelNode root = getRoot(projectPath);
+ IArchiveModelRootNode root = getRoot(projectPath);
xbPackages.remove(projectPath);
archivesRoot.remove(projectPath);
fireUnregisterProjectEvent(root);
}
- public void unregisterProject(IArchiveModelNode model, IProgressMonitor monitor) {
+ public void unregisterProject(IArchiveModelRootNode model, IProgressMonitor monitor) {
xbPackages.remove(model.getProjectPath());
archivesRoot.remove(model.getProjectPath());
fireUnregisterProjectEvent((ArchiveModelNode)model);
}
- protected void fireRegisterProjectEvent(final IArchiveModelNode newRoot) {
+ protected void fireRegisterProjectEvent(final IArchiveModelRootNode newRoot) {
fireRegistrationEvent(null, newRoot, IArchiveNodeDelta.NODE_REGISTERED);
}
- protected void fireUnregisterProjectEvent(final IArchiveModelNode oldRoot) {
+ protected void fireUnregisterProjectEvent(final IArchiveModelRootNode oldRoot) {
fireRegistrationEvent(oldRoot, null, IArchiveNodeDelta.NODE_UNREGISTERED);
}
- protected void fireRegistrationEvent(final IArchiveModelNode oldRoot, final IArchiveModelNode newRoot, final int type) {
+ protected void fireRegistrationEvent(final IArchiveModelRootNode oldRoot, final IArchiveModelRootNode newRoot, final int type) {
IArchiveNodeDelta delta = new IArchiveNodeDelta() {
public IArchiveNodeDelta[] getAddedChildrenDeltas() {return null;}
public IArchiveNodeDelta[] getAllAffectedChildren() {return null;}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -176,7 +176,7 @@
private static IArchiveModelListener[] getModelListeners(IArchiveNode node) {
- IArchiveModelNode model = node.getModelNode();
+ IArchiveModelRootNode model = node.getModelRootNode();
if( model != null && model.getModel() != null ) {
return model.getModel().getModelListeners();
}
@@ -188,7 +188,7 @@
return ArchivesModel.instance().getBuildListeners();
}
private static IArchiveBuildListener[] getBuildListeners(IArchiveNode node) {
- IArchiveModelNode model = node.getModelNode();
+ IArchiveModelRootNode model = node.getModelRootNode();
if( model != null && model.getModel() != null ) {
return model.getModel().getBuildListeners();
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchive.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchive.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchive.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -120,4 +120,14 @@
* Set's whether the destination is workspace relative or not
*/
public void setInWorkspace(boolean inWorkspace);
+
+ /**
+ * Top level archives should return a list of actions which
+ * must be done before or after building this archive
+ * @return
+ */
+ public IArchiveAction[] getActions();
+ public IArchiveAction[] getPreActions();
+ public IArchiveAction[] getPostActions();
+
}
Added: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveAction.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveAction.java (rev 0)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveAction.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -0,0 +1,74 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.archives.core.model;
+
+/**
+ * @author rob.stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public interface IArchiveAction extends IArchiveNode {
+
+ public static final String ATTRIBUTE_PREFIX = "org.jboss.ide.eclipse.archives.core.model.IArchiveAction.";
+ public static final String ACTION_TYPE_ATTRIBUTE = ATTRIBUTE_PREFIX + "type";
+ public static final String ACTION_TIME_ATTRIBUTE = ATTRIBUTE_PREFIX + "time";
+
+
+ /**
+ * A constant to indicate the action is to run before
+ * the build
+ */
+ public static final String PRE_BUILD = "preBuild";
+
+ /**
+ * A constant to indicate the action is to run after the build
+ */
+ public static final String POST_BUILD = "postBuild";
+ /**
+ * Get whether this should be executed
+ * before or after building the parent archive.
+ * @return
+ */
+ public String getTime();
+
+ /**
+ * Set whether this should be executed
+ * before or after building the parent archive.
+ * @return
+ */
+ public void setTime(String time);
+
+ /**
+ * Get the type of action this is.
+ * These are to be provided via an extension point
+ * or ant task to be discovered in ArchivesCore.
+ * @return
+ */
+ public String getType();
+
+ /**
+ * Set the type of action this is.
+ * These are to be provided via an extension point
+ * or ant task to be discovered in ArchivesCore.
+ * @return
+ */
+ public void setType(String type);
+}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -37,14 +37,14 @@
public boolean isProjectRegistered(IPath projectPath);
public void save(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
- public void save(IArchiveModelNode modelNode, IProgressMonitor monitor) throws ArchivesModelException;
- public IArchiveModelNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
- public IArchiveModelNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException;
- public void registerProject(IArchiveModelNode modelNode, IProgressMonitor monitor);
+ public void save(IArchiveModelRootNode modelNode, IProgressMonitor monitor) throws ArchivesModelException;
+ public IArchiveModelRootNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
+ public IArchiveModelRootNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException;
+ public void registerProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
public void unregisterProject(IPath projectPath, IProgressMonitor monitor);
- public void unregisterProject(IArchiveModelNode modelNode, IProgressMonitor monitor);
- public IArchiveModelNode getRoot(IPath project);
- public IArchiveModelNode[] getModelNodes();
+ public void unregisterProject(IArchiveModelRootNode modelNode, IProgressMonitor monitor);
+ public IArchiveModelRootNode getRoot(IPath project);
+ public IArchiveModelRootNode[] getModelNodes();
public boolean accept(IArchiveNodeVisitor visitor);
public void addBuildListener(IArchiveBuildListener listener);
Deleted: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -1,37 +0,0 @@
-/*
- * JBoss, a division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.archives.core.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
-
-
-/**
- * An interface for methods relevent to a model's root node.
- * Only a label interface thus far
- * @author <a href="rob.stryker(a)redhat.com">Rob Stryker</a>
- *
- */
-public interface IArchiveModelNode extends IArchiveNode {
- public IArchiveModel getModel();
- public void save(IProgressMonitor monitor) throws ArchivesModelException;
-}
Copied: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelRootNode.java (from rev 6878, trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java)
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelRootNode.java (rev 0)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelRootNode.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, a division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.archives.core.model;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+
+
+/**
+ * An interface for methods relevent to a model's root node.
+ * Only a label interface thus far
+ * @author <a href="rob.stryker(a)redhat.com">Rob Stryker</a>
+ *
+ */
+public interface IArchiveModelRootNode extends IArchiveNode {
+ public void setModel(IArchiveModel model);
+ public IArchiveModel getModel();
+ public void save(IProgressMonitor monitor) throws ArchivesModelException;
+}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -36,29 +36,35 @@
/**
* The node type that represents the model
*/
- public static final int TYPE_MODEL = -1;
+ public static final int TYPE_MODEL_ROOT = -1;
/**
- * The node type that represents an IPackage
+ * The node type that represents an IArchive
*/
public static final int TYPE_ARCHIVE = 0;
/**
- * The node type that represents an IPackageReference
+ * The node type that represents an IArchiveReference
*/
public static final int TYPE_ARCHIVE_REFERENCE = 1;
/**
- * The node type that represents an IPackageFileSet
+ * The node type that represents an IArchiveFileSet
*/
public static final int TYPE_ARCHIVE_FILESET = 2;
/**
- * The node type that represents an IPackageFolder
+ * The node type that represents an IActionFolder
*/
public static final int TYPE_ARCHIVE_FOLDER = 3;
/**
+ * The node type that represents an IArchiveAction
+ */
+ public static final int TYPE_ARCHIVE_ACTION = 4;
+
+
+ /**
* @return The parent of this package node, or null if this node is top level
*/
public IArchiveNode getParent();
@@ -150,10 +156,11 @@
* Get the model this node is attached to, or null if none
* @return
*/
- public IArchiveModelNode getModelNode();
+ public IArchiveModelRootNode getModelRootNode();
/**
- * Get the path relative to the root archive
+ * Get the path relative to the root archive,
+ * or null if not applicable.
* @return
*/
public IPath getRootArchiveRelativePath();
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -115,7 +115,7 @@
public IArchiveNode getPostNode();
/**
- * Return the affected node before changes, or null if the node is an {@link IArchiveModelNode}
+ * Return the affected node before changes, or null if the node is an {@link IArchiveModelRootNode}
* @return
*/
public IArchiveNode getPreNode();
Added: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveActionImpl.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveActionImpl.java (rev 0)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveActionImpl.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -0,0 +1,89 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.archives.core.model.internal;
+
+import org.eclipse.core.runtime.IPath;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveAction;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbAction;
+
+/**
+ * @author rob.stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ArchiveActionImpl extends ArchiveNodeImpl implements IArchiveAction {
+
+ private XbAction actionDelegate;
+
+ public ArchiveActionImpl() {
+ this(new XbAction());
+ }
+ public ArchiveActionImpl(XbAction delegate) {
+ super(delegate);
+ this.actionDelegate = delegate;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#getNodeType()
+ */
+ public int getNodeType() {
+ return IArchiveNode.TYPE_ARCHIVE_ACTION;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#getRootArchiveRelativePath()
+ */
+ public IPath getRootArchiveRelativePath() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveAction#getTime()
+ */
+ public String getTime() {
+ return actionDelegate.getTime();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveAction#getType()
+ */
+ public String getType() {
+ return actionDelegate.getType();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveAction#setTime(java.lang.String)
+ */
+ public void setTime(String time) {
+ attributeChanged(ACTION_TIME_ATTRIBUTE, getTime(), time);
+ actionDelegate.setType(time);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveAction#getType(java.lang.String)
+ */
+ public void setType(String type) {
+ attributeChanged(ACTION_TYPE_ATTRIBUTE, getType(), type);
+ actionDelegate.setType(type);
+ }
+
+}
\ No newline at end of file
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -28,7 +28,7 @@
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveNodeDeltaImpl.NodeDelta;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFileSet;
@@ -166,8 +166,8 @@
public IPath getProjectPath() {
return impl.getProjectPath();
}
- public IArchiveModelNode getModelNode() {
- return impl.getModelNode();
+ public IArchiveModelRootNode getModelRootNode() {
+ return impl.getModelRootNode();
}
}
@@ -188,8 +188,8 @@
public IPath getProjectPath() {
return impl.getProjectPath();
}
- public IArchiveModelNode getModelNode() {
- return impl.getModelNode();
+ public IArchiveModelRootNode getModelRootNode() {
+ return impl.getModelRootNode();
}
}
@@ -210,8 +210,8 @@
public IPath getProjectPath() {
return impl.getProjectPath();
}
- public IArchiveModelNode getModelNode() {
- return impl.getModelNode();
+ public IArchiveModelRootNode getModelRootNode() {
+ return impl.getModelRootNode();
}
}
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveImpl.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveImpl.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveImpl.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -25,6 +25,7 @@
import org.eclipse.core.runtime.Path;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveAction;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
@@ -117,6 +118,33 @@
System.arraycopy(nodes, 0, pkgs, 0, nodes.length);
return pkgs;
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchive#getActions()
+ */
+ public IArchiveAction[] getActions() {
+ IArchiveNode nodes[] = getChildren(TYPE_ARCHIVE_ACTION);
+ IArchiveAction actions[] = new IArchiveAction[nodes.length];
+ System.arraycopy(nodes, 0, actions, 0, nodes.length);
+ return actions;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchive#getPreActions()
+ */
+ public IArchiveAction[] getPreActions() {
+ return new IArchiveAction[0]; // TODO
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchive#getPostActions()
+ */
+ public IArchiveAction[] getPostActions() {
+ return new IArchiveAction[0]; // TODO
+ }
/*
* @see IArchive#getName()
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -25,29 +25,42 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.EventManager;
-import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
-public class ArchiveModelNode extends ArchiveNodeImpl implements IArchiveModelNode {
+/**
+ *
+ * @author rob.stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ArchiveModelNode extends ArchiveNodeImpl implements IArchiveModelRootNode {
private IPath project;
private IPath descriptor;
private IArchiveModel model;
+ public ArchiveModelNode(IPath project, XbPackages node) {
+ this(project, null, node);
+ }
+
+ public ArchiveModelNode(IPath project, IPath descriptor, XbPackages node) {
+ this(project, descriptor, node, null);
+ }
+
public ArchiveModelNode(IPath project, XbPackages node, IArchiveModel model) {
- this(project, project.append(IArchiveModel.DEFAULT_PACKAGES_FILE), node, model);
+ this(project, null, node, model);
}
public ArchiveModelNode(IPath project, IPath descriptor,
XbPackages node, IArchiveModel model) {
super(node);
this.project = project;
- this.descriptor = descriptor;
+ this.descriptor = descriptor != null ? descriptor :
+ project.append(IArchiveModel.DEFAULT_PACKAGES_FILE);
this.model = model;
}
@@ -89,7 +102,7 @@
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#getNodeType()
*/
public int getNodeType() {
- return IArchiveNode.TYPE_MODEL;
+ return IArchiveNode.TYPE_MODEL_ROOT;
}
/*
@@ -123,6 +136,10 @@
public void setParent(IArchiveNode parent) {
}
+ public void setModel(IArchiveModel model) {
+ this.model = model;
+ }
+
/**
* I have no relative path. I'm above the root archive
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#getRootArchiveRelativePath()
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -30,7 +30,7 @@
import org.eclipse.core.runtime.IPath;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor;
@@ -81,9 +81,9 @@
* (non-Javadoc)
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#getModel()
*/
- public IArchiveModelNode getModelNode() {
+ public IArchiveModelRootNode getModelRootNode() {
Object root = getRoot();
- return root instanceof IArchiveModelNode ? (IArchiveModelNode)root : null;
+ return root instanceof IArchiveModelRootNode ? (IArchiveModelRootNode)root : null;
}
/*
@@ -171,10 +171,8 @@
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#getProject()
*/
public IPath getProjectPath() {
- IArchiveNode root = getRoot();
- if( root.getNodeType() != IArchiveNode.TYPE_MODEL)
- return null;
- return root.getProjectPath();
+ IArchiveModelRootNode root = getModelRootNode();
+ return root == null ? null : root.getProjectPath();
}
/*
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -35,7 +35,7 @@
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor;
import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
@@ -226,7 +226,7 @@
return projectPath.append(workspacePath.removeFirstSegments(1));
}
- public static void fillArchiveModel( XbPackages node, IArchiveModelNode modelNode) throws ArchivesModelException {
+ public static void fillArchiveModel( XbPackages node, IArchiveModelRootNode modelNode) throws ArchivesModelException {
for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
XbPackageNode child = (XbPackageNode) iter.next();
ArchiveNodeImpl childImpl = (ArchiveNodeImpl)createPackageNodeImpl(child, modelNode);
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -225,7 +225,7 @@
private static File getFile(IArchiveNode node) {
if( node == null ) return null;
- if( node.getNodeType() == IArchiveNode.TYPE_MODEL ) return null;
+ if( node.getNodeType() == IArchiveNode.TYPE_MODEL_ROOT ) return null;
if( node.getNodeType() == IArchiveNode.TYPE_ARCHIVE_FILESET)
return getFile(node.getParent());
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -5,7 +5,7 @@
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
import org.jboss.ide.eclipse.archives.ui.PrefsInitializer;
@@ -37,19 +37,19 @@
if( parentElement instanceof Object[] ) return (Object[])parentElement;
- if( parentElement instanceof IArchiveModelNode && showProjectRoot()) {
+ if( parentElement instanceof IArchiveModelRootNode && showProjectRoot()) {
IProject[] projects;
if( PrefsInitializer.getBoolean(PrefsInitializer.PREF_SHOW_ALL_PROJECTS)) {
projects = ProjectArchivesView.getInstance().getAllProjectsWithPackages();
} else {
- String projName = ((IArchiveModelNode)parentElement).getProjectPath().lastSegment();
+ String projName = ((IArchiveModelRootNode)parentElement).getProjectPath().lastSegment();
projects = new IProject[] { ResourcesPlugin.getWorkspace().getRoot().getProject(projName) };
}
return wrapProjects(projects);
}
- if( parentElement instanceof IArchiveModelNode)
- return ((IArchiveModelNode)parentElement).getAllChildren();
+ if( parentElement instanceof IArchiveModelRootNode)
+ return ((IArchiveModelRootNode)parentElement).getAllChildren();
if( parentElement instanceof ArchivesModel ) {
// return all that's there
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -40,7 +40,7 @@
import org.jboss.ide.eclipse.archives.core.model.ArchivesModelCore;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.ui.ArchivesUIMessages;
@@ -222,7 +222,7 @@
return;
}
- IArchiveModelNode node = (IArchiveModelNode) packageViewer.getInput();
+ IArchiveModelRootNode node = (IArchiveModelRootNode) packageViewer.getInput();
if (node != null)
{
IPath projectPath = node.getProjectPath();
@@ -319,10 +319,10 @@
getSite().getShell().getDisplay().asyncExec(new Runnable () {
public void run () {
for( int i = 0; i < topChanges.length; i++ ) {
- if( topChanges.length == 1 && topChanges[0] instanceof IArchiveModelNode) {
+ if( topChanges.length == 1 && topChanges[0] instanceof IArchiveModelRootNode) {
// we have a changed IArchiveModelNode. Something's different
- IArchiveModelNode inputModel = (IArchiveModelNode) packageViewer.getInput();
- IArchiveModelNode newModel = (IArchiveModelNode)topChanges[0];
+ IArchiveModelRootNode inputModel = (IArchiveModelRootNode) packageViewer.getInput();
+ IArchiveModelRootNode newModel = (IArchiveModelRootNode)topChanges[0];
if( inputModel == null || (inputModel.getProjectPath().equals(newModel.getProjectPath()) && inputModel != newModel)) {
// they have the same path but are different objects.
// Model was probably reloaded from disk and could be completely different
Modified: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java 2008-03-11 19:57:33 UTC (rev 6879)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java 2008-03-11 20:58:09 UTC (rev 6880)
@@ -29,10 +29,11 @@
import org.jboss.ide.eclipse.archives.core.model.ArchiveNodeFactory;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener;
+import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
@@ -52,19 +53,19 @@
}
public void testSimpleCreation() {
- createModel();
+ createModelNode();
}
public void testAddToModel() {
- ArchiveModelNode model = createModel();
- ArchivesModel.instance().registerProject(model, new NullProgressMonitor());
- assertEquals(model, ArchivesModel.instance().getRoot(project));
+ ArchiveModelNode modelNode = createModelNode();
+ modelNode.getModel().registerProject(modelNode, new NullProgressMonitor());
+ assertEquals(modelNode,modelNode.getModel().getRoot(project));
assertNotSame(null, modelListener.getDelta());
assertEquals(IArchiveNodeDelta.NODE_REGISTERED, modelListener.getDelta().getKind());
- ArchivesModel.instance().unregisterProject(model, new NullProgressMonitor());
+ modelNode.getModel().registerProject(modelNode, new NullProgressMonitor());
}
- protected ArchiveModelNode createModel() {
+ protected ArchiveModelNode createModelNode() {
try {
XbPackages packs = new XbPackages();
XbPackage pack = new XbPackage();
@@ -72,7 +73,7 @@
ArchiveModelNode model = getModel(packs);
ModelUtil.fillArchiveModel(packs, model);
assertEquals(project, model.getProjectPath());
- assertEquals(IArchiveNode.TYPE_MODEL, model.getNodeType());
+ assertEquals(IArchiveNode.TYPE_MODEL_ROOT, model.getNodeType());
assertEquals(null, model.getParent());
assertEquals(packs, model.getNodeDelegate());
assertTrue(model.hasChildren());
@@ -86,20 +87,64 @@
return null;
}
- public void testDeltas() {
+ public void testAddFolderToModel() {
try {
- ArchiveModelNode model = createModel();
- model.clearDelta();
+ ArchiveModelNode modelNode = createModelNode();
IArchiveFolder folder = ArchiveNodeFactory.createFolder();
folder.setName("testFolder");
- model.addChild(folder);
- IArchiveNodeDelta delta = model.getDelta();
- assertEquals(IArchiveNodeDelta.CHILD_ADDED, delta.getKind());
+ modelNode.addChild(folder);
} catch( ArchivesModelException ame ) {
- fail(ame.getMessage());
+ return;
}
+ fail();
}
+ public void testAddFilesetToModel() {
+ try {
+ ArchiveModelNode modelNode = createModelNode();
+ IArchiveFileSet fs = ArchiveNodeFactory.createFileset();
+ fs.setIncludesPattern("*");
+ fs.setSourcePath(new Path("blah"));
+ modelNode.addChild(fs);
+ } catch( ArchivesModelException ame ) {
+ return;
+ }
+ fail();
+ }
+
+
+ public void testAddActionToModel() {
+ fail();
+ }
+
+ public void testAddArchiveToModel() {
+ try {
+ ArchiveModelNode modelNode = createModelNode();
+ IArchive archive = ArchiveNodeFactory.createArchive();
+ archive.setName("someName.war");
+ archive.setDestinationPath(new Path("test"));
+ modelNode.addChild(archive);
+ } catch( ArchivesModelException ame ) {
+ fail();
+ }
+ }
+
+
+
+// public void testDeltas() {
+// try {
+// ArchiveModelNode model = createModelNode();
+// model.clearDelta();
+// IArchiveFolder folder = ArchiveNodeFactory.createFolder();
+// folder.setName("testFolder");
+// model.addChild(folder);
+// IArchiveNodeDelta delta = model.getDelta();
+// assertEquals(IArchiveNodeDelta.CHILD_ADDED, delta.getKind());
+// } catch( ArchivesModelException ame ) {
+// fail(ame.getMessage());
+// }
+// }
+
protected ArchiveModelNode getModel(XbPackages packs) {
IArchiveModel model = new ArchivesModel();
model.addModelListener(modelListener);
16 years, 3 months
JBoss Tools SVN: r6879 - trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-03-11 15:57:33 -0400 (Tue, 11 Mar 2008)
New Revision: 6879
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java
Log:
stack overflow fixed
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java 2008-03-11 19:41:22 UTC (rev 6878)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java 2008-03-11 19:57:33 UTC (rev 6879)
@@ -40,7 +40,7 @@
return parent;
}
public String getMessage() {
- return getMessage() != null ? getMessage() :
+ return super.getMessage() != null ? super.getMessage() :
parent.getCause() == null ? parent.getMessage() :
parent.getCause().getMessage();
}
16 years, 3 months
JBoss Tools SVN: r6878 - in trunk: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules and 18 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-03-11 15:41:22 -0400 (Tue, 11 Mar 2008)
New Revision: 6878
Added:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java
Removed:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelListenerManager.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EarArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EjbArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/J2EEArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/WarArchiveType.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesBuildListener.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/packages/ArchivePublishWizard.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/types/WorkspaceJARArchiveType.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedAntExecution.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelCore.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeDeltaImpl.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/dialogs/ArchiveNodeDestinationDialog.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ArchivesMenuHandler.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/AbstractArchiveWizard.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/FilesetWizard.java
trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages/ArchiveInfoWizardPage.java
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ModelUtilTest.java
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBMarshallTest.java
trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBUnmarshallTest.java
Log:
Archives API Refactor.
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EarArchiveType.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EarArchiveType.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EarArchiveType.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -29,6 +29,7 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.jst.server.core.IEnterpriseApplication;
import org.eclipse.wst.server.core.IModule;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveType;
@@ -84,6 +85,7 @@
}
public IArchive fillDefaultConfiguration(String projectName, IArchive topLevel, IProgressMonitor monitor) {
+ try {
IModule mod = getModule(projectName);
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
@@ -110,7 +112,7 @@
}
}
+ } catch( ArchivesModelException ame) {}
return topLevel;
}
-
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EjbArchiveType.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EjbArchiveType.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/EjbArchiveType.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -28,6 +28,7 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.wst.server.core.IModule;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
/**
@@ -71,8 +72,7 @@
IPath outputLoc = proj.getOutputLocation();
addFileset(project, topLevel, outputLoc.toOSString(), null);
} catch( JavaModelException jmde) {
- // ignore. No reporting necessary here
- }
+ } catch( ArchivesModelException ame ) {}
}
}
return topLevel;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/J2EEArchiveType.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/J2EEArchiveType.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/J2EEArchiveType.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -37,6 +37,7 @@
import org.eclipse.wst.server.core.IModuleArtifact;
import org.eclipse.wst.server.core.internal.ServerPlugin;
import org.jboss.ide.eclipse.archives.core.model.ArchiveNodeFactory;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
@@ -118,13 +119,15 @@
}
- public static IArchiveFolder addFolder(IProject project, IArchiveNode parent, String name) {
+ public static IArchiveFolder addFolder(IProject project,
+ IArchiveNode parent, String name) throws ArchivesModelException {
IArchiveFolder folder = ArchiveNodeFactory.createFolder();
folder.setName(name);
parent.addChild(folder);
return folder;
}
- public static IArchiveFileSet addFileset(IProject project, IArchiveNode parent, String sourcePath, String includePattern) {
+ public static IArchiveFileSet addFileset(IProject project, IArchiveNode parent,
+ String sourcePath, String includePattern) throws ArchivesModelException {
IArchiveFileSet fs = ArchiveNodeFactory.createFileset();
Assert.isNotNull(project);
IJavaProject javaProject = JavaCore.create(project);
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/WarArchiveType.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/WarArchiveType.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/archives/WarArchiveType.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -41,6 +41,7 @@
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.server.core.IModule;
import org.jboss.ide.eclipse.archives.core.ArchivesCorePlugin;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.DirectoryScannerFactory;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
@@ -77,24 +78,26 @@
return fillDefaultConfiguration(getProject(projectName), topLevel, monitor);
}
public IArchive fillDefaultConfiguration(IProject project, IArchive topLevel, IProgressMonitor monitor) {
- IModule mod = getModule(project.getName());
- IArchiveFolder webinf = addFolder(project, topLevel, WEBINF);
- IArchiveFolder lib = addFolder(project, webinf, LIB);
- IArchiveFolder classes = addFolder(project, webinf, CLASSES);
- addReferencedProjectsAsLibs(project, lib);
- addLibFileset(project, lib, true);
- addClassesFileset(project, classes);
-
- if( mod == null ) {
- addWebinfFileset(project, webinf);
- } else {
- addWebContentFileset(project, topLevel);
- }
+ try {
+ IModule mod = getModule(project.getName());
+ IArchiveFolder webinf = addFolder(project, topLevel, WEBINF);
+ IArchiveFolder lib = addFolder(project, webinf, LIB);
+ IArchiveFolder classes = addFolder(project, webinf, CLASSES);
+ addReferencedProjectsAsLibs(project, lib);
+ addLibFileset(project, lib, true);
+ addClassesFileset(project, classes);
+
+ if( mod == null ) {
+ addWebinfFileset(project, webinf);
+ } else {
+ addWebContentFileset(project, topLevel);
+ }
+ } catch( ArchivesModelException ame) {}
return topLevel;
}
// For modules only
- protected void addWebContentFileset(IProject project, IArchiveNode packageRoot) {
+ protected void addWebContentFileset(IProject project, IArchiveNode packageRoot) throws ArchivesModelException {
try {
IPath projectPath = project.getLocation();
DirectoryScanner scanner =
@@ -115,7 +118,7 @@
}
}
- protected void addClassesFileset(IProject project, IArchiveFolder folder) {
+ protected void addClassesFileset(IProject project, IArchiveFolder folder) throws ArchivesModelException {
IJavaProject jp = JavaCore.create(project);
if( jp != null ) {
try {
@@ -127,7 +130,7 @@
}
}
}
- protected void addWebinfFileset(IProject project, IArchiveFolder folder) {
+ protected void addWebinfFileset(IProject project, IArchiveFolder folder) throws ArchivesModelException {
try {
IPath projectPath = project.getLocation();
DirectoryScanner scanner =
@@ -147,7 +150,7 @@
}
// Lib support
- protected void addLibFileset(IProject project, IArchiveFolder folder, boolean includeTopLevelJars) {
+ protected void addLibFileset(IProject project, IArchiveFolder folder, boolean includeTopLevelJars) throws ArchivesModelException {
// Let us find /WEB-INF/lib directory and set it as source for the file set.
String sourcePath = null;
@@ -178,7 +181,7 @@
}
}
}
- protected void addReferencedProjectsAsLibs(IProject project, IArchiveFolder folder) {
+ protected void addReferencedProjectsAsLibs(IProject project, IArchiveFolder folder) throws ArchivesModelException {
IJavaProject jp = JavaCore.create(project);
if( jp != null && jp.exists()) {
try {
@@ -199,7 +202,7 @@
}
- protected void createLibFromProject(IProject project, IArchiveFolder folder) {
+ protected void createLibFromProject(IProject project, IArchiveFolder folder) throws ArchivesModelException {
IArchive pack = createGenericIArchive(project, null, project.getName() + ".jar");
folder.addChild(pack);
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesBuildListener.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesBuildListener.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesBuildListener.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -63,7 +63,7 @@
public ArchivesBuildListener() {
ArchivesModel.instance().addBuildListener(this);
- ArchivesModel.instance().addModelListener(this, ArchivesModel.LIST_FRONT);
+ ArchivesModel.instance().addModelListener(this); // ? , ArchivesModel.LIST_FRONT);
}
public void cleanArchive(IArchive pkg) {
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/modules/ArchivesModelModuleContributor.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -28,11 +28,15 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
import org.eclipse.wst.server.core.IModule;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesModelCore;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.core.modules.PackageModuleFactory.IModuleContributor;
import org.jboss.ide.eclipse.as.core.modules.PackageModuleFactory.PackagedModuleDelegate;
@@ -68,18 +72,26 @@
int size = projects2.length;
for (int i = 0; i < size; i++) {
if (projects2[i].isAccessible()) {
- createModules(projects2[i]);
+ try {
+ createModules(projects2[i]);
+ } catch(ArchivesModelException ame) {
+ IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
+ JBossServerCorePlugin.getDefault().getLog().log(status);
+ }
}
}
}
return modules.toArray(new IModule[modules.size()]);
}
- protected void createModules(IProject project) {
- IArchive[] packs = ArchivesModelCore.getProjectPackages(project.getLocation(), null, false);
+ protected void createModules(IProject project) throws ArchivesModelException {
+ IArchive[] packs = ModelUtil.getProjectArchives(project.getLocation());
if( packs != null && packs.length > 0 ) {
IModule module;
- IArchive[] packages = ArchivesModelCore.getProjectPackages(project.getLocation(), new NullProgressMonitor(), true);
+ if( !ArchivesModel.instance().isProjectRegistered(project.getLocation())) {
+ ArchivesModel.instance().registerProject(project.getLocation(), new NullProgressMonitor());
+ }
+ IArchive[] packages = ModelUtil.getProjectArchives(project.getLocation());
boolean requiresSave = ensureArchivesHaveIDs(project, packages);
ArrayList<IModule> mods = new ArrayList<IModule>();
for( int i = 0; i < packages.length; i++ ) {
@@ -92,8 +104,12 @@
}
projectToModules.put(project.getLocation(), mods);
if( requiresSave )
- ArchivesModel.instance().saveModel(project.getLocation(),
- new NullProgressMonitor());
+ try {
+ ArchivesModel.instance().save(project.getLocation(),
+ new NullProgressMonitor());
+ } catch( ArchivesModelException ame ) {
+
+ }
}
}
@@ -126,7 +142,12 @@
}
}
}
- createModules(findProject(projectLoc));
+ try {
+ createModules(findProject(projectLoc));
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, ame.getMessage(), ame);
+ JBossServerCorePlugin.getDefault().getLog().log(status);
+ }
}
protected IProject findProject(IPath projectLoc) {
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/packages/ArchivePublishWizard.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/packages/ArchivePublishWizard.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/packages/ArchivePublishWizard.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -24,6 +24,7 @@
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.as.core.modules.ArchivesBuildListener;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
@@ -42,7 +43,11 @@
pack.setProperty(ArchivesBuildListener.DEPLOY_SERVERS, getServers());
pack.setProperty(ArchivesBuildListener.DEPLOY_AFTER_BUILD, getAutoDeploy());
IPath p = pack.getProjectPath();
- ArchivesModel.instance().saveModel(p, null);
+ try {
+ ArchivesModel.instance().save(p, null);
+ } catch( ArchivesModelException ame ) {
+ // TODO
+ }
}
return true;
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/WorkspaceChangeListener.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -39,6 +39,9 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
+import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
/**
* Update the model if someone changes the packaging file by hand
@@ -56,7 +59,7 @@
delta.accept(new IResourceDeltaVisitor() {
public boolean visit(IResourceDelta delta) throws CoreException {
if( delta.getResource() != null && delta.getResource().getLocation() != null &&
- delta.getResource().getLocation().lastSegment().equals(ArchivesModel.PROJECT_PACKAGES_FILE)) {
+ delta.getResource().getLocation().lastSegment().equals(IArchiveModel.DEFAULT_PACKAGES_FILE)) {
projects.add(delta.getResource().getProject());
}
return true;
@@ -70,18 +73,22 @@
final IProject p = i.next();
try {
if( p.getSessionProperty(new QualifiedName(ArchivesCorePlugin.PLUGIN_ID, "localname")) == null ) {
- ArchivesModel.instance().registerProject(p.getLocation(), new NullProgressMonitor());
- new Job("Refresh Project: " + p.getName()) {
- protected IStatus run(IProgressMonitor monitor) {
- try {
- p.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
- } catch( CoreException e ) {
- IStatus status = new Status(IStatus.WARNING, ArchivesCorePlugin.PLUGIN_ID, "Could not refresh project " + p.getName(), e);
- return status;
+ try {
+ ArchivesModel.instance().registerProject(p.getLocation(), new NullProgressMonitor());
+ new Job("Refresh Project: " + p.getName()) {
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ p.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ } catch( CoreException e ) {
+ IStatus status = new Status(IStatus.WARNING, ArchivesCorePlugin.PLUGIN_ID, "Could not refresh project " + p.getName(), e);
+ return status;
+ }
+ return Status.OK_STATUS;
}
- return Status.OK_STATUS;
- }
- }.schedule();
+ }.schedule();
+ } catch( ArchivesModelException ame ) {
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not register project " + p.getName(), ame);
+ }
}
} catch( CoreException ce ) {
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/build/ModelChangeListenerWithRefresh.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -10,8 +10,8 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.QualifiedName;
import org.jboss.ide.eclipse.archives.core.ArchivesCorePlugin;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
/**
@@ -48,7 +48,7 @@
}
try {
- proj.getFile(new Path(ArchivesModel.PROJECT_PACKAGES_FILE)).refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
+ proj.getFile(new Path(IArchiveModel.DEFAULT_PACKAGES_FILE)).refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
} catch( CoreException ce ) {
}
} catch( CoreException ce ) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/types/WorkspaceJARArchiveType.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/types/WorkspaceJARArchiveType.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/model/types/WorkspaceJARArchiveType.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -12,6 +12,7 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFileSetImpl;
@@ -62,7 +63,10 @@
classes.setSourcePath(outputContainer.getFullPath());
classes.setInWorkspace(true);
- jar.addChild(classes);
+ try {
+ jar.addChild(classes);
+ } catch( ArchivesModelException ame ) {
+ }
monitor.worked(1);
monitor.done();
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -40,6 +40,7 @@
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor;
@@ -122,7 +123,7 @@
// ignore the packages project. that will it's own build call,
// or will handle the change in some other way
- if( !delta.getResource().equals(proj.findMember(ArchivesModel.PROJECT_PACKAGES_FILE)))
+ if( !delta.getResource().equals(proj.findMember(IArchiveModel.DEFAULT_PACKAGES_FILE)))
addedChanged.add(delta.getResource().getLocation());
} else if( (delta.getKind() & IResourceDelta.REMOVED ) > 0 ) {
removed.add(delta.getResource().getLocation());
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedAntExecution.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedAntExecution.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedAntExecution.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -15,7 +15,7 @@
import org.apache.tools.ant.taskdefs.War;
import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.ZipFileSet;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -33,7 +33,7 @@
/**
* Packages file defaults to ".packages"
*/
- private String jbossPackages = ArchivesModel.PROJECT_PACKAGES_FILE;
+ private String jbossPackages = IArchiveModel.DEFAULT_PACKAGES_FILE;
private JBossArchivesTask parentTask;
public IsolatedAntExecution(JBossArchivesTask parent) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/IsolatedTruezipExecution.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -9,6 +9,7 @@
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModelCore;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
@@ -57,7 +58,11 @@
if( ArchivesModel.instance().getRoot(path) == null) {
task.log("Registering project: " + path + ". ", Project.MSG_VERBOSE);
- ArchivesModel.instance().registerProject(path, null);
+ try {
+ ArchivesModel.instance().registerProject(path, null);
+ } catch( ArchivesModelException ame ) {
+ // log it
+ }
}
IArchiveModelNode node = ArchivesModel.instance().getRoot(path);
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -81,7 +81,7 @@
if( isTopLevelArchive(delta.getPostNode()))
EventManager.startedBuildingArchive((IArchive)delta.getPostNode());
- if( (delta.getKind() & IArchiveNodeDelta.UNKNOWN_CHANGE) != 0 ) {
+ if( (delta.getKind() & (IArchiveNodeDelta.NODE_REGISTERED | IArchiveNodeDelta.UNKNOWN_CHANGE)) != 0 ) {
nodeRemoved(delta.getPreNode());
nodeAdded(delta.getPostNode());
} if( (delta.getKind() & IArchiveNodeDelta.REMOVED) != 0 ) {
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -21,18 +21,12 @@
*/
package org.jboss.ide.eclipse.archives.core.model;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
@@ -46,18 +40,13 @@
*
* @author <a href="rob.stryker(a)redhat.com">Rob Stryker</a>
*/
-public class ArchivesModel implements IArchiveModelListenerManager {
+public class ArchivesModel implements IArchiveModel {
/**
- * The packages file name
- */
- public static final String PROJECT_PACKAGES_FILE = ".packages";
-
- /**
* Singleton instance
*/
- protected static ArchivesModel instance;
- public static ArchivesModel instance() {
+ protected static IArchiveModel instance;
+ public static IArchiveModel instance() {
if( instance == null )
instance = new ArchivesModel();
return instance;
@@ -74,199 +63,165 @@
modelListeners = new ArrayList<IArchiveModelListener>();
}
-
- public static final int LIST_FRONT = 0;
- public static final int LIST_BACK = -1;
-
/*
- * Listeners
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#addBuildListener(org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener)
*/
public void addBuildListener(IArchiveBuildListener listener) {
if( !buildListeners.contains(listener))
buildListeners.add(listener);
}
- public void addBuildListener(IArchiveBuildListener listener, int loc) {
- if( !buildListeners.contains(listener)) {
- if( loc == LIST_FRONT )
- buildListeners.add(0, listener);
- else
- buildListeners.add(listener);
- }
- }
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#removeBuildListener(org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener)
+ */
public void removeBuildListener(IArchiveBuildListener listener) {
buildListeners.remove(listener);
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getBuildListeners()
+ */
public IArchiveBuildListener[] getBuildListeners() {
return buildListeners.toArray(new IArchiveBuildListener[buildListeners.size()]);
}
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#addModelListener(org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener)
+ */
public void addModelListener(IArchiveModelListener listener) {
if( !modelListeners.contains(listener))
modelListeners.add(listener);
}
- public void addModelListener(IArchiveModelListener listener, int loc) {
- if( !modelListeners.contains(listener)) {
- if( loc == LIST_FRONT )
- modelListeners.add(0, listener);
- else
- modelListeners.add(listener);
- }
- }
-
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#removeModelListener(org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener)
+ */
public void removeModelListener(IArchiveModelListener listener) {
if( modelListeners.contains(listener))
modelListeners.remove(listener);
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getModelListeners()
+ */
public IArchiveModelListener[] getModelListeners() {
return modelListeners.toArray(new IArchiveModelListener[modelListeners.size()]);
}
-
-
-
-
-
- public XbPackages getXbPackages(IPath project) {
- return (xbPackages.get(project));
- }
-
- /**
- * If the project hasn't been registered, register it
- * @param project
- * @param monitor
- * @return
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#getModelNodes()
*/
- public XbPackages getXbPackages(IPath project, IProgressMonitor monitor) {
- if( !xbPackages.containsKey(project))
- registerProject(project, monitor);
- return (xbPackages.get(project));
+ public IArchiveModelNode[] getModelNodes() {
+ Collection<ArchiveModelNode> c = archivesRoot.values();
+ return (IArchiveModelNode[]) c.toArray(new IArchiveModelNode[c.size()]);
}
- /**
- * Accept a visitor
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModel#accept(org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor)
*/
public boolean accept(IArchiveNodeVisitor visitor) {
- IArchiveNode children[] = getAllArchives();
+ IArchiveModelNode[] children = getModelNodes();
boolean keepGoing = true;
-
- if (keepGoing) {
- for (int i = 0; i < children.length; i++) {
- if (keepGoing) {
+ if (keepGoing)
+ for (int i = 0; i < children.length; i++)
+ if (keepGoing)
keepGoing = children[i].accept(visitor);
- }
- }
- }
-
return keepGoing;
}
-
- /**
- * Gets every single *registered* model
- * @return
- */
- protected ArchiveModelNode[] getAllArchives() {
- ArchiveModelNode[] ret = new ArchiveModelNode[archivesRoot.keySet().size()];
- Iterator<IPath> i = archivesRoot.keySet().iterator();
- int x = 0;
- while(i.hasNext()) {
- ret[x++] = archivesRoot.get(i.next());
- }
- return ret;
+
+
+ public IArchiveModelNode getRoot(IPath project) {
+ return (archivesRoot.get(project));
}
- /**
- * Get the root node for this object
- * @param project
- * @return
- */
- public IArchiveModelNode getRoot(IPath project) {
- return getRoot(project, false, new NullProgressMonitor());
+ @Deprecated
+ public void save(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
+ save(getRoot(projectPath), monitor);
}
- public IArchiveModelNode getRoot(IPath project, boolean register, IProgressMonitor monitor) {
- if( archivesRoot.get(project) == null && register ) {
- registerProject(project, monitor);
- }
- return (archivesRoot.get(project));
+ @Deprecated
+ public void save(IArchiveModelNode modelNode, IProgressMonitor monitor) throws ArchivesModelException {
+ modelNode.save(monitor);
}
- public IArchive[] getProjectArchives(IPath project) {
- return getProjectArchives(project, false, new NullProgressMonitor());
+ public boolean isProjectRegistered(IPath projectPath) {
+ return archivesRoot.containsKey(projectPath);
}
- public IArchive[] getProjectArchives(IPath project, boolean register, IProgressMonitor monitor) {
- IArchiveModelNode root = getRoot(project, register, monitor);
- if( root != null ) {
- List<IArchiveNode> list = Arrays.asList( getRoot(project, register, monitor).getAllChildren());
- return list.toArray(new IArchive[list.size()]);
- } else if( register) {
- registerProject(project, monitor);
- List<IArchiveNode> list = Arrays.asList( getRoot(project, register, monitor).getAllChildren());
- return list.toArray(new IArchive[list.size()]);
- } else {
- return new IArchive[] {};
- }
- }
- // to make sure the node root is actually in the model
- public boolean containsRoot(ArchiveModelNode node) {
- return archivesRoot.containsValue(node);
+ public IArchiveModelNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException {
+ return registerProject(projectPath, DEFAULT_PACKAGES_FILE, monitor);
}
- public void registerProject(IPath project, IProgressMonitor monitor) {
- // if the file exists, read it in
- if( monitor == null ) monitor = new NullProgressMonitor();
- monitor.beginTask("Loading configuration...", XMLBinding.NUM_UNMARSHAL_MONITOR_STEPS + 2);
-
- ArchivesCore.getInstance().preRegisterProject(project);
-
- ArchiveModelNode root;
- Exception e = null;
- IPath packagesFile = project.append(PROJECT_PACKAGES_FILE);
+ public IArchiveModelNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException {
+ XbPackages packages;
+ ArchiveModelNode modelNode;
+
+ IPath packagesFile = projectPath.append(file);
if (packagesFile.toFile().exists()) {
- XbPackages packages = null;
try {
- FileInputStream is = new FileInputStream(packagesFile.toFile());
- packages = XMLBinding.unmarshal(is, monitor);
- monitor.worked(1);
- } catch (FileNotFoundException f) {
- e = f;
- } catch( XbException xbe) {
- e = xbe;
- }
-
- if (packages == null) {
+ packages = XMLBinding.unmarshal(packagesFile.toFile(), monitor);
+ } catch( XbException xbe ) {
// Empty / non-working XML file loaded
- ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not unmarshall packages file", e);
- return;
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Error unmarshalling packages file " + packagesFile, xbe);
+ return null;
}
-
- root = new ArchiveModelNode(project, packages, this);
- ArchiveModelNode oldRoot = archivesRoot.get(project);
- xbPackages.put(project, packages);
- archivesRoot.put(project, root);
- ModelUtil.fillArchiveModel(packages, (ArchiveModelNode)getRoot(project));
- root.clearDeltas();
- fireRegisterProjectEvent(oldRoot, root);
- monitor.worked(1);
} else {
- // file not found, just create some default xbpackages and insert them
- XbPackages packages = new XbPackages();
- ArchiveModelNode root2 = new ArchiveModelNode(project, packages, this);
- xbPackages.put(project, packages);
- archivesRoot.put(project, root2);
- fireRegisterProjectEvent(null, root2);
+ packages = new XbPackages();
}
+
+ // Fill the model
+ modelNode = new ArchiveModelNode(projectPath, projectPath.append(file), packages, this);
+ ModelUtil.fillArchiveModel(packages, modelNode);
+ modelNode.clearDelta();
+
+ registerProject(modelNode, monitor);
+ return modelNode;
}
- protected void fireRegisterProjectEvent(final ArchiveModelNode oldRoot, final ArchiveModelNode newRoot) {
+ public void registerProject(IArchiveModelNode model, IProgressMonitor monitor) {
+ ArchivesCore.getInstance().preRegisterProject(model.getProjectPath());
+ xbPackages.put(model.getProjectPath(), ((ArchiveModelNode)model).getXbPackages());
+ archivesRoot.put(model.getProjectPath(), (ArchiveModelNode)model);
+ fireRegisterProjectEvent((ArchiveModelNode)model);
+ }
+
+ public void unregisterProject(IPath projectPath, IProgressMonitor monitor) {
+ IArchiveModelNode root = getRoot(projectPath);
+ xbPackages.remove(projectPath);
+ archivesRoot.remove(projectPath);
+ fireUnregisterProjectEvent(root);
+ }
+
+ public void unregisterProject(IArchiveModelNode model, IProgressMonitor monitor) {
+ xbPackages.remove(model.getProjectPath());
+ archivesRoot.remove(model.getProjectPath());
+ fireUnregisterProjectEvent((ArchiveModelNode)model);
+ }
+
+ protected void fireRegisterProjectEvent(final IArchiveModelNode newRoot) {
+ fireRegistrationEvent(null, newRoot, IArchiveNodeDelta.NODE_REGISTERED);
+ }
+
+ protected void fireUnregisterProjectEvent(final IArchiveModelNode oldRoot) {
+ fireRegistrationEvent(oldRoot, null, IArchiveNodeDelta.NODE_UNREGISTERED);
+ }
+
+ protected void fireRegistrationEvent(final IArchiveModelNode oldRoot, final IArchiveModelNode newRoot, final int type) {
IArchiveNodeDelta delta = new IArchiveNodeDelta() {
public IArchiveNodeDelta[] getAddedChildrenDeltas() {return null;}
public IArchiveNodeDelta[] getAllAffectedChildren() {return null;}
public INodeDelta getAttributeDelta(String key) {return null;}
public String[] getAttributesWithDeltas() {return null;}
public IArchiveNodeDelta[] getChangedDescendentDeltas() {return null;}
- public int getKind() {return IArchiveNodeDelta.UNKNOWN_CHANGE;}
+ public int getKind() {return type;}
public IArchiveNode getPostNode() {return newRoot;}
public IArchiveNode getPreNode() { return oldRoot; }
public String[] getPropertiesWithDeltas() {return null;}
@@ -275,43 +230,4 @@
};
EventManager.fireDelta(delta);
}
-
-
- public void saveModel (IPath project, IProgressMonitor monitor) {
- // get a list of dirty nodes
-
- if (monitor == null)
- monitor = new NullProgressMonitor();
-
- IPath packagesFile = project.append(ArchivesModel.PROJECT_PACKAGES_FILE);
- XbPackages packs = getXbPackages(project);
- try {
- XMLBinding.marshallToFile(packs, packagesFile, monitor);
- } catch( IOException ioe ) {
- ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not marshall packages file", ioe);
- return;
- } catch( XbException xbe ) {
- ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_ERR, "Could not marshall packages file", xbe);
- return;
- }
-
- // get deltas
- ArchiveModelNode root = (ArchiveModelNode)getRoot(project);
- IArchiveNodeDelta delta = root.getDelta();
-
- // clear deltas
- root.clearDeltas();
-
- // fire delta events
- EventManager.fireDelta(delta);
- }
-
- // TODO: This requires massive help and new API's as well.
- public void attach(IArchiveNode parent, IArchiveNode child, IProgressMonitor monitor) {
- parent.addChild(child);
- if( parent.connectedToModel() && parent.getProjectPath() != null) {
- // save
- saveModel(parent.getProjectPath(), monitor);
- }
- }
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelCore.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelCore.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelCore.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -37,7 +37,6 @@
*/
public class ArchivesModelCore {
-
/**
* Builds all of a project's packages. Note that this does not call any builders before or after the package builder (i.e. the JDT builder).
* If you are looking to run all the builders on a project use project.build()
@@ -59,36 +58,14 @@
new ArchiveBuildDelegate().fullArchiveBuild(pkg);
}
- public static IArchive[] getProjectPackages (IPath project, IProgressMonitor monitor, boolean forceInit) {
- return ArchivesModel.instance().getProjectArchives(project, forceInit, monitor);
- }
-
public static boolean packageFileExists (IPath project) {
- return project.append(ArchivesModel.PROJECT_PACKAGES_FILE).toFile().exists();
+ return project.append(IArchiveModel.DEFAULT_PACKAGES_FILE).toFile().exists();
}
public static boolean projectRegistered(IPath project) {
return ArchivesModel.instance().getRoot(project) == null ? false : true;
}
-
- /**
- * Visit all of the top-level packages in the passed in project with the passed in node visitor
- * @param project The project whose packages to visit
- * @param visitor The visitor
- */
- public static void visitProjectArchives (IPath project, IArchiveNodeVisitor visitor) {
- if (packageFileExists(project)) {
- IArchive packages[] = getProjectPackages(project, null, false);
- if( packages == null ) return;
- for (int i = 0; i < packages.length; i++) {
- boolean keepGoing = packages[i].accept(visitor);
- if (!keepGoing) break;
- }
- }
- }
-
-
public static IPath[] findMatchingPaths(IPath root, String includes, String excludes) {
try {
if(root==null) return new IPath[0];
Added: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java (rev 0)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModelException.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -0,0 +1,51 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.archives.core.model;
+
+/**
+ * @author rob.stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ArchivesModelException extends Exception {
+ private Exception parent;
+
+ public ArchivesModelException(String message) {
+ super(message);
+ }
+
+ public ArchivesModelException(Exception e) {
+ super();
+ parent = e;
+ }
+ public Exception getException() {
+ return parent;
+ }
+ public String getMessage() {
+ return getMessage() != null ? getMessage() :
+ parent.getCause() == null ? parent.getMessage() :
+ parent.getCause().getMessage();
+ }
+ public Throwable getCause() {
+ return parent;
+ }
+
+}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/EventManager.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -176,9 +176,9 @@
private static IArchiveModelListener[] getModelListeners(IArchiveNode node) {
- IArchiveModelNode model = node.getModel();
- if( model != null && model.getManager() != null ) {
- return model.getManager().getModelListeners();
+ IArchiveModelNode model = node.getModelNode();
+ if( model != null && model.getModel() != null ) {
+ return model.getModel().getModelListeners();
}
return new IArchiveModelListener[]{};
}
@@ -188,9 +188,9 @@
return ArchivesModel.instance().getBuildListeners();
}
private static IArchiveBuildListener[] getBuildListeners(IArchiveNode node) {
- IArchiveModelNode model = node.getModel();
- if( model != null && model.getManager() != null ) {
- return model.getManager().getBuildListeners();
+ IArchiveModelNode model = node.getModelNode();
+ if( model != null && model.getModel() != null ) {
+ return model.getModel().getBuildListeners();
}
return new IArchiveBuildListener[]{};
}
Copied: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java (from rev 6560, trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelListenerManager.java)
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java (rev 0)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModel.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -0,0 +1,56 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.archives.core.model;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+
+
+/**
+ * Manages Archive Model Listeners, build and model changes, for changes
+ * in the model
+ * @author rstryker
+ *
+ */
+public interface IArchiveModel {
+ public static final String DEFAULT_PACKAGES_FILE = ".packages";
+
+ public boolean isProjectRegistered(IPath projectPath);
+ public void save(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
+ public void save(IArchiveModelNode modelNode, IProgressMonitor monitor) throws ArchivesModelException;
+ public IArchiveModelNode registerProject(IPath projectPath, IProgressMonitor monitor) throws ArchivesModelException;
+ public IArchiveModelNode registerProject(IPath projectPath, String file, IProgressMonitor monitor) throws ArchivesModelException;
+ public void registerProject(IArchiveModelNode modelNode, IProgressMonitor monitor);
+ public void unregisterProject(IPath projectPath, IProgressMonitor monitor);
+ public void unregisterProject(IArchiveModelNode modelNode, IProgressMonitor monitor);
+ public IArchiveModelNode getRoot(IPath project);
+ public IArchiveModelNode[] getModelNodes();
+ public boolean accept(IArchiveNodeVisitor visitor);
+
+ public void addBuildListener(IArchiveBuildListener listener);
+ public void removeBuildListener(IArchiveBuildListener listener);
+ public IArchiveBuildListener[] getBuildListeners();
+ public void addModelListener(IArchiveModelListener listener);
+ public void removeModelListener(IArchiveModelListener listener);
+ public IArchiveModelListener[] getModelListeners();
+}
Deleted: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelListenerManager.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelListenerManager.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelListenerManager.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -1,40 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.archives.core.model;
-
-
-/**
- * Manages Archive Model Listeners, build and model changes, for changes
- * in the model
- * @author rstryker
- *
- */
-public interface IArchiveModelListenerManager {
-
- public void addBuildListener(IArchiveBuildListener listener);
- public void removeBuildListener(IArchiveBuildListener listener);
- public IArchiveBuildListener[] getBuildListeners();
- public void addModelListener(IArchiveModelListener listener);
- public void removeModelListener(IArchiveModelListener listener);
- public IArchiveModelListener[] getModelListeners();
-
-}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveModelNode.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -21,6 +21,10 @@
*/
package org.jboss.ide.eclipse.archives.core.model;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+
+
/**
* An interface for methods relevent to a model's root node.
* Only a label interface thus far
@@ -28,5 +32,6 @@
*
*/
public interface IArchiveModelNode extends IArchiveNode {
- public IArchiveModelListenerManager getManager();
+ public IArchiveModel getModel();
+ public void save(IProgressMonitor monitor) throws ArchivesModelException;
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNode.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -132,7 +132,7 @@
* Add a child node to this node
* @param child The child to add
*/
- public void addChild(IArchiveNode child);
+ public void addChild(IArchiveNode child) throws ArchivesModelException;
/**
* Remove a child node from this node
@@ -150,15 +150,9 @@
* Get the model this node is attached to, or null if none
* @return
*/
- public IArchiveModelNode getModel();
-
+ public IArchiveModelNode getModelNode();
+
/**
- * Is the root of this node a PackageModelNode and registered in ArchivesModel?
- * @return
- */
- public boolean connectedToModel();
-
- /**
* Get the path relative to the root archive
* @return
*/
@@ -169,9 +163,16 @@
* @return
*/
public IArchive getRootArchive();
+
/**
* Get the current delta
* @return
*/
public IArchiveNodeDelta getDelta();
+
+ /**
+ * Clear the current delta
+ * @return
+ */
+ public void clearDelta();
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/IArchiveNodeDelta.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -86,11 +86,23 @@
public static final int DESCENDENT_CHANGED = 0x400;
/**
- * An unknown change has occurred. Best to reshow the entire module
+ * The node was registered with a model
*/
- public static final int UNKNOWN_CHANGE = 0x800;
+ public static final int NODE_REGISTERED = 0x800;
+
+ /**
+ * The node was unregistered with a model
+ */
+ public static final int NODE_UNREGISTERED = 0x1000;
/**
+ * An unknown change has occurred. This may include
+ * any (or multiple) events and may require an observer
+ * to re-scan the entire node / tree for changes.
+ */
+ public static final int UNKNOWN_CHANGE = 0x1000;
+
+ /**
* Return the delta kind
* @return
*/
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveDeltaPreNodeFactory.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -166,8 +166,8 @@
public IPath getProjectPath() {
return impl.getProjectPath();
}
- public IArchiveModelNode getModel() {
- return impl.getModel();
+ public IArchiveModelNode getModelNode() {
+ return impl.getModelNode();
}
}
@@ -188,8 +188,8 @@
public IPath getProjectPath() {
return impl.getProjectPath();
}
- public IArchiveModelNode getModel() {
- return impl.getModel();
+ public IArchiveModelNode getModelNode() {
+ return impl.getModelNode();
}
}
@@ -210,8 +210,8 @@
public IPath getProjectPath() {
return impl.getProjectPath();
}
- public IArchiveModelNode getModel() {
- return impl.getModel();
+ public IArchiveModelNode getModelNode() {
+ return impl.getModelNode();
}
}
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveModelNode.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -22,31 +22,44 @@
package org.jboss.ide.eclipse.archives.core.model.internal;
import org.eclipse.core.runtime.IPath;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
+import org.jboss.ide.eclipse.archives.core.model.EventManager;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListenerManager;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackageNodeWithProperties;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
public class ArchiveModelNode extends ArchiveNodeImpl implements IArchiveModelNode {
private IPath project;
- private IArchiveModelListenerManager manager;
+ private IPath descriptor;
+ private IArchiveModel model;
- public ArchiveModelNode(IPath project, XbPackages node,
- IArchiveModelListenerManager manager) {
+ public ArchiveModelNode(IPath project, XbPackages node, IArchiveModel model) {
+ this(project, project.append(IArchiveModel.DEFAULT_PACKAGES_FILE), node, model);
+ }
+
+ public ArchiveModelNode(IPath project, IPath descriptor,
+ XbPackages node, IArchiveModel model) {
super(node);
this.project = project;
- this.manager = manager;
+ this.descriptor = descriptor;
+ this.model = model;
}
+ public IPath getDescriptor() {
+ return descriptor;
+ }
/*
* (non-Javadoc)
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode#getManager()
*/
- public IArchiveModelListenerManager getManager() {
- return manager;
+ public IArchiveModel getModel() {
+ return model;
}
/*
@@ -65,10 +78,10 @@
* The model root can only accept IArchive's as children
* @see IArchiveNode#addChild(IArchiveNode)
*/
- public void addChild(IArchiveNode child) {
- if( child instanceof IArchive ) {
- super.addChild(child);
- }
+ protected boolean validateChild(IArchiveNode child) {
+ if( child.getNodeType() != IArchiveNode.TYPE_ARCHIVE)
+ return false;
+ return true;
}
/*
@@ -92,7 +105,7 @@
* @see org.jboss.ide.eclipse.archives.core.model.internal.ArchiveNodeImpl#connectedToModel()
*/
public boolean connectedToModel() {
- return ArchivesModel.instance().containsRoot(this);
+ return getModel() != null;
}
/**
@@ -117,4 +130,19 @@
public IPath getRootArchiveRelativePath() {
return null;
}
+
+ /* (non-Javadoc)
+ * @see org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode#save(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void save(IProgressMonitor monitor) throws ArchivesModelException {
+ XbPackages packs = (XbPackages)getNodeDelegate();
+ try {
+ XMLBinding.marshallToFile(packs, getDescriptor(), monitor);
+ } catch( XbException xbe ) {
+ throw new ArchivesModelException(xbe);
+ }
+ IArchiveNodeDelta delta = getDelta();
+ clearDelta();
+ EventManager.fireDelta(delta);
+ }
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeDeltaImpl.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeDeltaImpl.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeDeltaImpl.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -26,6 +26,7 @@
import java.util.HashMap;
import java.util.Iterator;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
@@ -183,10 +184,14 @@
if( preNode != null ) {
// now we've got our list of current children... set them.
for( Iterator i = priorChildren.iterator(); i.hasNext(); ) {
- preNode.addChild((IArchiveNode)i.next());
+ try {
+ preNode.addChild((IArchiveNode)i.next());
+ } catch( ArchivesModelException ame) {
+ // DO nothing
+ }
}
// now clear pre-node's deltas so it looks shiny
- preNode.clearDeltas();
+ preNode.clearDelta();
}
childrenDeltas = (IArchiveNodeDelta[]) deltas.toArray(new IArchiveNodeDelta[deltas.size()]);
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/ArchiveNodeImpl.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -28,7 +28,7 @@
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IPath;
-import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
@@ -81,7 +81,7 @@
* (non-Javadoc)
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#getModel()
*/
- public IArchiveModelNode getModel() {
+ public IArchiveModelNode getModelNode() {
Object root = getRoot();
return root instanceof IArchiveModelNode ? (IArchiveModelNode)root : null;
}
@@ -243,7 +243,7 @@
* (non-Javadoc)
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#addChild(org.jboss.ide.eclipse.archives.core.model.IArchiveNode)
*/
- public void addChild(IArchiveNode node) {
+ public void addChild(IArchiveNode node) throws ArchivesModelException {
addChild(node, true);
}
@@ -252,7 +252,9 @@
* @param child
* @param addInDelegate
*/
- public void addChild(IArchiveNode child, boolean addInDelegate) {
+ public void addChild(IArchiveNode child, boolean addInDelegate) throws ArchivesModelException {
+ if( !validateChild(child) )
+ throw new ArchivesModelException("Unable to add child node");
Assert.isNotNull(child);
ArchiveNodeImpl childImpl = (ArchiveNodeImpl) child;
children.add(childImpl);
@@ -262,6 +264,10 @@
childChanges(child, IArchiveNodeDelta.CHILD_ADDED);
}
+ protected boolean validateChild(IArchiveNode child) {
+ return true;
+ }
+
/*
* (non-Javadoc)
* @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#removeChild(org.jboss.ide.eclipse.archives.core.model.IArchiveNode)
@@ -283,16 +289,6 @@
childChanges(node, IArchiveNodeDelta.CHILD_REMOVED);
}
- /*
- * (non-Javadoc)
- * @see org.jboss.ide.eclipse.archives.core.model.IArchiveNode#connectedToModel()
- */
- public boolean connectedToModel() {
- IArchiveNode root = getRoot();
- return root != null && root.getNodeType() == TYPE_MODEL && ArchivesModel.instance().containsRoot((ArchiveModelNode)root);
- }
-
-
/**
* An attribute has changed. Save the change so it can be represented in a delta
*/
@@ -387,7 +383,7 @@
/**
* Forget all past state
*/
- public void clearDeltas() {
+ public void clearDelta() {
attributeChanges.clear();
propertyChanges.clear();
childChanges.clear();
@@ -395,6 +391,6 @@
// clear children recursively
IArchiveNode[] children = getAllChildren();
for( int i = 0; i < children.length; i++ )
- ((ArchiveNodeImpl)children[i]).clearDeltas();
+ ((ArchiveNodeImpl)children[i]).clearDelta();
}
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/internal/xb/XMLBinding.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -22,6 +22,9 @@
package org.jboss.ide.eclipse.archives.core.model.internal.xb;
import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -97,7 +100,18 @@
return unmarshal(new ByteArrayInputStream(input.getBytes()), monitor);
}
- public static XbPackages unmarshal (final InputStream in,
+ public static XbPackages unmarshal(File file, IProgressMonitor monitor) throws XbException {
+ try {
+ FileInputStream fis = new FileInputStream(file);
+ return unmarshal(fis, monitor);
+ } catch( FileNotFoundException fnfe ) {
+ throw new XbException(fnfe);
+ } catch( XbException xbe) {
+ throw xbe;
+ }
+ }
+
+ protected static XbPackages unmarshal (final InputStream in,
final IProgressMonitor monitor) throws XbException {
if( !initialized) init();
final XbPackages[] element = new XbPackages[1];
@@ -137,7 +151,7 @@
return null;
}
- public static void marshallToFile(XbPackages element, IPath filePath, IProgressMonitor monitor) throws XbException, IOException {
+ public static void marshallToFile(XbPackages element, IPath filePath, IProgressMonitor monitor) throws XbException {
OutputStreamWriter writer = null;
try {
writer = new OutputStreamWriter(new FileOutputStream(filePath.toFile()));
@@ -145,12 +159,12 @@
} catch( XbException xbe ) {
throw xbe;
} catch( IOException ioe ) {
- throw ioe;
+ throw new XbException(ioe);
}
finally {
try {
if( writer != null ) writer.close();
- } catch( IOException ioe) {throw ioe;}
+ } catch( IOException ioe) {}
}
}
@@ -208,6 +222,7 @@
public static class XbException extends Exception {
private Exception parent;
public XbException(Exception e) {
+ super();
parent = e;
}
public Exception getException() {
@@ -216,5 +231,8 @@
public String getMessage() {
return parent.getCause() == null ? parent.getMessage() : parent.getCause().getMessage();
}
+ public Throwable getCause() {
+ return parent;
+ }
}
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -25,16 +25,20 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
import org.eclipse.core.runtime.IPath;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor;
+import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFileSetImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFolderImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveImpl;
@@ -222,20 +226,24 @@
return projectPath.append(workspacePath.removeFirstSegments(1));
}
- public static void fillArchiveModel( XbPackages node, IArchiveModelNode modelNode) {
+ public static void fillArchiveModel( XbPackages node, IArchiveModelNode modelNode) throws ArchivesModelException {
for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
XbPackageNode child = (XbPackageNode) iter.next();
ArchiveNodeImpl childImpl = (ArchiveNodeImpl)createPackageNodeImpl(child, modelNode);
if (modelNode != null && childImpl != null) {
- if( modelNode instanceof ArchiveNodeImpl )
- ((ArchiveNodeImpl)modelNode).addChild(childImpl, false);
- else
- modelNode.addChild(childImpl);
+ try {
+ if( modelNode instanceof ArchiveNodeImpl )
+ ((ArchiveNodeImpl)modelNode).addChild(childImpl, false);
+ else
+ modelNode.addChild(childImpl);
+ } catch( ArchivesModelException ame ) {
+ ArchivesCore.getInstance().getLogger().log(IArchivesLogger.MSG_WARN, "Error Adding Child", ame);
+ }
}
}
}
- protected static IArchiveNode createPackageNodeImpl (XbPackageNode node, IArchiveNode parent) {
+ protected static IArchiveNode createPackageNodeImpl (XbPackageNode node, IArchiveNode parent) throws ArchivesModelException {
ArchiveNodeImpl nodeImpl = null;
if (node instanceof XbPackage) {
nodeImpl = new ArchiveImpl((XbPackage)node);
@@ -257,4 +265,16 @@
return nodeImpl;
}
+ public static IArchive[] getProjectArchives(IPath project) {
+ return getProjectArchives(project, ArchivesModel.instance());
+ }
+
+ public static IArchive[] getProjectArchives(IPath project, IArchiveModel model) {
+ if( model != null ) {
+ IArchiveNode[] archives = model.getRoot(project).getAllChildren();
+ List<IArchiveNode> list = Arrays.asList(archives);
+ return (IArchive[]) list.toArray(new IArchive[list.size()]);
+ }
+ return null;
+ }
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/dialogs/ArchiveNodeDestinationDialog.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/dialogs/ArchiveNodeDestinationDialog.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/dialogs/ArchiveNodeDestinationDialog.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -2,7 +2,6 @@
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -12,6 +11,7 @@
import org.eclipse.core.resources.IResource;
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.NullProgressMonitor;
import org.eclipse.jface.viewers.ILabelProvider;
@@ -25,7 +25,9 @@
import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
import org.eclipse.ui.ide.IDE;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
import org.jboss.ide.eclipse.archives.ui.ArchivesUIMessages;
import org.jboss.ide.eclipse.archives.ui.providers.ArchivesLabelProvider;
@@ -76,10 +78,9 @@
}
}
if (showNodes && parentElement instanceof IProject) {
- result.addAll(Arrays.asList(ArchivesModel.instance()
- .getProjectArchives(
- ((IProject) parentElement).getLocation(),
- true, new NullProgressMonitor())));
+ IPath path = ((IProject)parentElement).getLocation();
+ IArchive[] archives = ModelUtil.getProjectArchives(path);
+ result.addAll(Arrays.asList(archives));
}
return result.toArray();
}
@@ -115,8 +116,8 @@
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
for( int i = 0; i < projects.length; i++ ) {
if( projects[i].isAccessible()) {
- List tmp = Arrays.asList(
- ArchivesModel.instance().getProjectArchives(projects[i].getLocation(), true, monitor));
+ IArchive[] archives = ModelUtil.getProjectArchives(projects[i].getLocation());
+ List tmp = Arrays.asList(archives);
if( tmp.size() > 0 && !destinations.contains(projects[i]))
destinations.add(projects[i]);
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/providers/ArchivesContentProvider.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -7,6 +7,7 @@
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
import org.jboss.ide.eclipse.archives.ui.PrefsInitializer;
import org.jboss.ide.eclipse.archives.ui.views.ProjectArchivesView;
@@ -54,7 +55,7 @@
// return all that's there
}
if( parentElement instanceof WrappedProject ) {
- return ArchivesModel.instance().getProjectArchives(((WrappedProject)parentElement).getProject().getLocation());
+ return ModelUtil.getProjectArchives(((WrappedProject)parentElement).getProject().getLocation());
}
if( parentElement instanceof IArchiveNode ) {
return ((IArchiveNode)parentElement).getAllChildren();
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ArchivesMenuHandler.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ArchivesMenuHandler.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ArchivesMenuHandler.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -29,14 +29,17 @@
import org.jboss.ide.eclipse.archives.core.build.ArchiveBuildDelegate;
import org.jboss.ide.eclipse.archives.core.model.ArchiveNodeFactory;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
import org.jboss.ide.eclipse.archives.ui.ArchivesSharedImages;
import org.jboss.ide.eclipse.archives.ui.ArchivesUIMessages;
import org.jboss.ide.eclipse.archives.ui.ExtensionManager;
import org.jboss.ide.eclipse.archives.ui.NodeContribution;
+import org.jboss.ide.eclipse.archives.ui.PackagesUIPlugin;
import org.jboss.ide.eclipse.archives.ui.actions.ActionWithDelegate;
import org.jboss.ide.eclipse.archives.ui.actions.NewArchiveAction;
import org.jboss.ide.eclipse.archives.ui.actions.NewJARAction;
@@ -299,23 +302,29 @@
int response = dialog.open();
if (response == Dialog.OK) {
- String[] folderPaths = dialog.getValue().split("[\\\\/]");
- IArchiveNode selected = getSelectedNode();
- IArchiveFolder current = null;
- IArchiveFolder temp = null;
-
- for(int i = folderPaths.length-1; i >= 0 ; i-- ) {
- temp = ArchiveNodeFactory.createFolder();
- temp.setName(folderPaths[i]);
- if( current == null )
- current = temp;
- else {
- temp.addChild(current);
- current = temp;
+ try {
+ String[] folderPaths = dialog.getValue().split("[\\\\/]");
+ IArchiveNode selected = getSelectedNode();
+ IArchiveFolder current = null;
+ IArchiveFolder temp = null;
+
+ for(int i = folderPaths.length-1; i >= 0 ; i-- ) {
+ temp = ArchiveNodeFactory.createFolder();
+ temp.setName(folderPaths[i]);
+ if( current == null )
+ current = temp;
+ else {
+ temp.addChild(current);
+ current = temp;
+ }
}
+
+ selected.addChild(current);
+ //ArchivesModel.
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, PackagesUIPlugin.PLUGIN_ID, "Error Attaching Archives Node", ame);
+ PackagesUIPlugin.getDefault().getLog().log(status);
}
-
- ArchivesModel.instance().attach(selected, current, new NullProgressMonitor());
}
}
@@ -353,7 +362,12 @@
int response = dialog.open();
if (response == Dialog.OK) {
folder.setName(dialog.getValue());
- ArchivesModel.instance().saveModel(folder.getProjectPath(), new NullProgressMonitor());
+ try {
+ ArchivesModel.instance().save(folder.getProjectPath(), new NullProgressMonitor());
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, PackagesUIPlugin.PLUGIN_ID, "Problem saving archives model", ame);
+ PackagesUIPlugin.getDefault().getLog().log(status);
+ }
}
}
}
@@ -378,7 +392,13 @@
IArchiveNode parent = (IArchiveNode) node.getParent();
parent.removeChild(node);
if( parent.getProjectPath() != null ) {
- ArchivesModel.instance().saveModel(parent.getProjectPath(), new NullProgressMonitor());
+ try {
+ ArchivesModel.instance().save(parent.getProjectPath(), new NullProgressMonitor());
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, PackagesUIPlugin.PLUGIN_ID, "Problem saving archives model", ame);
+ PackagesUIPlugin.getDefault().getLog().log(status);
+ }
+
}
}
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesView.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -9,6 +9,8 @@
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
@@ -36,12 +38,14 @@
import org.eclipse.ui.part.ViewPart;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModelCore;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.ui.ArchivesUIMessages;
import org.jboss.ide.eclipse.archives.ui.ExtensionManager;
+import org.jboss.ide.eclipse.archives.ui.PackagesUIPlugin;
import org.jboss.ide.eclipse.archives.ui.PrefsInitializer;
import org.jboss.ide.eclipse.archives.ui.actions.NewArchiveAction;
import org.jboss.ide.eclipse.archives.ui.providers.ArchivesContentProvider;
@@ -263,7 +267,12 @@
getSite().getShell().getDisplay().asyncExec(new Runnable () {
public void run () {
for( int i = 0; i < projects.length; i++ ) {
- ArchivesModel.instance().registerProject(projects[i].getLocation(), loadingProgress);
+ try {
+ ArchivesModel.instance().registerProject(projects[i].getLocation(), loadingProgress);
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, PackagesUIPlugin.PLUGIN_ID, ame.getMessage(), ame);
+ PackagesUIPlugin.getDefault().getLog().log(status);
+ }
}
book.showPage(viewerComposite);
packageViewer.setInput(ArchivesModel.instance().getRoot(projectToShow.getLocation()));
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/AbstractArchiveWizard.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/AbstractArchiveWizard.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/AbstractArchiveWizard.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -7,6 +7,8 @@
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -15,8 +17,10 @@
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.ui.PackagesUIPlugin;
import org.jboss.ide.eclipse.archives.ui.views.ProjectArchivesView;
import org.jboss.ide.eclipse.archives.ui.wizards.pages.ArchiveInfoWizardPage;
@@ -82,28 +86,33 @@
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
IArchiveNode parent = null;
- if (destination instanceof IArchiveNode) {
- // if we're modifying an existing package, remove old parentage
- if (!create && !destination.equals(pkg.getParent())) {
- if (pkg.getParent() != null) {
- pkg.getParent().removeChild(pkg);
+ try {
+ if (destination instanceof IArchiveNode) {
+ // if we're modifying an existing package, remove old parentage
+ if (!create && !destination.equals(pkg.getParent())) {
+ if (pkg.getParent() != null) {
+ pkg.getParent().removeChild(pkg);
+ }
}
+ parent = (IArchiveNode)destination;
+ } else {
+ parent = ArchivesModel.instance().getRoot(project.getLocation());
+ if( parent == null )
+ parent = ArchivesModel.instance().registerProject(project.getLocation(), null);
}
- parent = (IArchiveNode)destination;
- } else {
- parent = ArchivesModel.instance().getRoot(project.getLocation(), true, monitor);
+
+ if( create )
+ parent.addChild(pkg);
+ ArchivesModel.instance().save(project.getLocation(), monitor);
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, PackagesUIPlugin.PLUGIN_ID, "Error Completing Wizard", ame);
+ PackagesUIPlugin.getDefault().getLog().log(status);
}
-
- if( create )
- ArchivesModel.instance().attach(parent, pkg, monitor);
- else
- ArchivesModel.instance().saveModel(project.getLocation(), monitor);
+
}
});
} catch (InvocationTargetException e) {
-//TODO Trace.trace(getClass(), e);
} catch (InterruptedException e) {
-//TODO Trace.trace(getClass(), e);
}
}
return performed;
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/FilesetWizard.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/FilesetWizard.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/FilesetWizard.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -3,13 +3,17 @@
import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.wizard.Wizard;
import org.jboss.ide.eclipse.archives.core.model.ArchiveNodeFactory;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.ui.PackagesUIPlugin;
import org.jboss.ide.eclipse.archives.ui.wizards.pages.FilesetInfoWizardPage;
public class FilesetWizard extends Wizard {
@@ -26,7 +30,6 @@
}
public boolean performFinish() {
- try {
final boolean createFileset = this.fileset == null;
if (createFileset)
@@ -36,19 +39,18 @@
try {
getContainer().run(false, false, new IRunnableWithProgress () {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- if (createFileset) {
- ArchivesModel.instance().attach(parentNode, fileset, monitor);
- } else {
- ArchivesModel.instance().saveModel(fileset.getProjectPath(), monitor);
+ try {
+ if (createFileset)
+ parentNode.addChild(fileset);
+ ArchivesModel.instance().save(fileset.getProjectPath(), monitor);
+ } catch( ArchivesModelException ame ) {
+ IStatus status = new Status(IStatus.ERROR, PackagesUIPlugin.PLUGIN_ID, "Error Completing Wizard", ame);
+ PackagesUIPlugin.getDefault().getLog().log(status);
}
}
});
} catch (InvocationTargetException e) {
-//TODO Trace.trace(getClass(), e);
} catch (InterruptedException e) {
-//TODO Trace.trace(getClass(), e);
- }
-
} catch(Exception e) {e.printStackTrace();}
return true;
}
Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages/ArchiveInfoWizardPage.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages/ArchiveInfoWizardPage.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages/ArchiveInfoWizardPage.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -20,6 +20,7 @@
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
import org.jboss.ide.eclipse.archives.ui.ArchivesSharedImages;
import org.jboss.ide.eclipse.archives.ui.ArchivesUIMessages;
import org.jboss.ide.eclipse.archives.ui.util.DestinationChangeListener;
@@ -193,7 +194,7 @@
}
} else if (destination instanceof IContainer) {
IContainer container = (IContainer) destination;
- IArchive[] packages = ArchivesModel.instance().getProjectArchives(wizard.getProject().getLocation());
+ IArchive[] packages = ModelUtil.getProjectArchives(wizard.getProject().getLocation());
if (packages != null) {
for( int i = 0; i < packages.length; i++ ) {
IArchive pkg = (IArchive) packages[i];
@@ -211,7 +212,7 @@
}
} else if (destination instanceof IPath) {
IPath path = (IPath) destination;
- IArchive[] packages = ArchivesModel.instance().getProjectArchives(wizard.getProject().getLocation());
+ IArchive[] packages = ModelUtil.getProjectArchives(wizard.getProject().getLocation());
if (packages != null) {
for( int i = 0; i < packages.length; i++ ) {
IArchive pkg = (IArchive) packages[i];
Modified: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ModelUtilTest.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ModelUtilTest.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/ModelUtilTest.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -9,6 +9,7 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.jboss.ide.eclipse.archives.core.model.ArchiveNodeFactory;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
@@ -33,7 +34,11 @@
inputs = bundlePath.append("inputs");
} catch( IOException ioe) {}
}
- rootArchive = createArchive();
+ try {
+ rootArchive = createArchive();
+ } catch( ArchivesModelException ame ) {
+ fail(ame.getMessage());
+ }
}
public void tearDown() {
@@ -42,7 +47,7 @@
- protected IArchive createArchive() {
+ protected IArchive createArchive() throws ArchivesModelException {
IPath fileTrees = inputs.append("fileTrees");
IArchive root = ArchiveNodeFactory.createArchive();
@@ -77,7 +82,7 @@
imageFileset.setIncludesPattern("**/*.gif,**/*.png,**/*.xml");
images.addChild(imageFileset);
- ((ArchiveNodeImpl)root).clearDeltas();
+ ((ArchiveNodeImpl)root).clearDelta();
return root;
}
@@ -117,7 +122,7 @@
}
- public void testOtherFilesetMatchesPath() {
+ public void testOtherFilesetMatchesPath() throws ArchivesModelException {
IPath xml = inputs.append("fileTrees").append("misc").append("rug.xml");
IArchiveFileSet[] xmlFS = ModelUtil.getMatchingFilesets(rootArchive, xml);
assertTrue(xmlFS.length == 2);
Modified: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelCreationTest.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -24,10 +24,17 @@
import junit.framework.TestCase;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.jboss.ide.eclipse.archives.core.model.ArchiveNodeFactory;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
+import org.jboss.ide.eclipse.archives.core.model.ArchivesModelException;
import org.jboss.ide.eclipse.archives.core.model.IArchiveBuildListener;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListener;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveModelListenerManager;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveModel;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
+import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackage;
import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
@@ -38,34 +45,78 @@
*
*/
public class ModelCreationTest extends TestCase {
- public void testModelCreation1() {
- XbPackages packs = new XbPackages();
- XbPackage pack = new XbPackage();
- packs.addChild(pack);
- ArchiveModelNode model = getModel(packs);
- ModelUtil.fillArchiveModel(packs, model);
- // passes for now.
+ protected IPath project = new Path("test").append("project");
+ TempArchiveModelListener modelListener = createListener();
+ protected void setUp() throws Exception {
+ modelListener.clearDelta();
}
+
+ public void testSimpleCreation() {
+ createModel();
+ }
+ public void testAddToModel() {
+ ArchiveModelNode model = createModel();
+ ArchivesModel.instance().registerProject(model, new NullProgressMonitor());
+ assertEquals(model, ArchivesModel.instance().getRoot(project));
+ assertNotSame(null, modelListener.getDelta());
+ assertEquals(IArchiveNodeDelta.NODE_REGISTERED, modelListener.getDelta().getKind());
+ ArchivesModel.instance().unregisterProject(model, new NullProgressMonitor());
+ }
+
+ protected ArchiveModelNode createModel() {
+ try {
+ XbPackages packs = new XbPackages();
+ XbPackage pack = new XbPackage();
+ packs.addChild(pack);
+ ArchiveModelNode model = getModel(packs);
+ ModelUtil.fillArchiveModel(packs, model);
+ assertEquals(project, model.getProjectPath());
+ assertEquals(IArchiveNode.TYPE_MODEL, model.getNodeType());
+ assertEquals(null, model.getParent());
+ assertEquals(packs, model.getNodeDelegate());
+ assertTrue(model.hasChildren());
+ assertEquals(1, model.getAllChildren().length);
+ assertEquals(null, ArchivesModel.instance().getRoot(project));
+ assertEquals(null, modelListener.getDelta());
+ return model;
+ } catch( ArchivesModelException ame ) {
+ fail(ame.getMessage());
+ }
+ return null;
+ }
+
+ public void testDeltas() {
+ try {
+ ArchiveModelNode model = createModel();
+ model.clearDelta();
+ IArchiveFolder folder = ArchiveNodeFactory.createFolder();
+ folder.setName("testFolder");
+ model.addChild(folder);
+ IArchiveNodeDelta delta = model.getDelta();
+ assertEquals(IArchiveNodeDelta.CHILD_ADDED, delta.getKind());
+ } catch( ArchivesModelException ame ) {
+ fail(ame.getMessage());
+ }
+ }
+
protected ArchiveModelNode getModel(XbPackages packs) {
- IArchiveModelListenerManager manager = new IArchiveModelListenerManager() {
- public void addBuildListener(IArchiveBuildListener listener) {
- }
- public void addModelListener(IArchiveModelListener listener) {
- }
- public IArchiveBuildListener[] getBuildListeners() {
- return new IArchiveBuildListener[] {};
- }
- public IArchiveModelListener[] getModelListeners() {
- return new IArchiveModelListener[] {};
- }
- public void removeBuildListener(IArchiveBuildListener listener) {
- }
- public void removeModelListener(IArchiveModelListener listener) {
- }
- };
- IPath project = new Path("test").append("two");
- ArchiveModelNode node = new ArchiveModelNode(project, packs, manager);
+ IArchiveModel model = new ArchivesModel();
+ model.addModelListener(modelListener);
+ ArchiveModelNode node = new ArchiveModelNode(project, packs, model);
return node;
}
+
+ protected TempArchiveModelListener createListener() {
+ return new TempArchiveModelListener();
+ }
+
+ protected class TempArchiveModelListener implements IArchiveModelListener {
+ private IArchiveNodeDelta delta;
+ public void modelChanged(IArchiveNodeDelta delta) {
+ this.delta = delta;
+ }
+ public IArchiveNodeDelta getDelta() { return delta; }
+ public void clearDelta() { delta = null; }
+ }
}
Modified: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBMarshallTest.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBMarshallTest.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBMarshallTest.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -103,8 +103,6 @@
} catch( XbException xbe ) {
xbe.printStackTrace();
fail(xbe.getMessage());
- } catch( IOException ioe ) {
- fail(ioe.getMessage());
}
}
@@ -113,9 +111,7 @@
try {
IPath out = outputs.append("test.xml");
XMLBinding.marshallToFile(packs, out, new NullProgressMonitor());
- } catch( IOException ioe ) {
- fail("IOException during testWritePackage operation");
- }catch( XbException xbe ) {
+ } catch( XbException xbe ) {
e = xbe;
} finally {
if( e == null && !shouldPass) {
@@ -128,7 +124,6 @@
}
protected void writePackage(String name, String toDir, boolean shouldPass) {
- XbException e = null;
XbPackages packs = new XbPackages();
XbPackage pack = new XbPackage();
pack.setName(name);
Modified: trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBUnmarshallTest.java
===================================================================
--- trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBUnmarshallTest.java 2008-03-11 19:38:40 UTC (rev 6877)
+++ trunk/core/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/XBUnmarshallTest.java 2008-03-11 19:41:22 UTC (rev 6878)
@@ -196,13 +196,9 @@
*/
protected XbPackages parse(String file, boolean shouldSucceed, String failMsg) {
- FileInputStream fis = null;
XbPackages packs = null;
try {
- fis = new FileInputStream(archiveDescriptors.append(file).toFile());
- packs = XMLBinding.unmarshal(fis, new NullProgressMonitor());
- } catch( IOException ioe ) {
- fail(ioe.getMessage());
+ packs = XMLBinding.unmarshal(archiveDescriptors.append(file).toFile(), new NullProgressMonitor());
} catch( XbException e ) {
if( shouldSucceed )
fail(failMsg + " - " + e.getMessage());
16 years, 3 months