JBoss Tools SVN: r12790 - in trunk: vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor and 3 other directories.
by jbosstools-commits@lists.jboss.org
Author: izhukov
Date: 2008-12-20 08:29:41 -0500 (Sat, 20 Dec 2008)
New Revision: 12790
Added:
trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/spacer/spacer.css
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeMenuListener.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeTextOperationAction.java
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/Constants.java
Log:
JBIDE-3424 fixed
VpeController class code refactoring
Added: trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/spacer/spacer.css
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/spacer/spacer.css (rev 0)
+++ trunk/jsf/plugins/org.jboss.tools.jsf.vpe.richfaces/resources/spacer/spacer.css 2008-12-20 13:29:41 UTC (rev 12790)
@@ -0,0 +1,2 @@
+.rich-spacer{
+}
\ No newline at end of file
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2008-12-20 13:13:41 UTC (rev 12789)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2008-12-20 13:29:41 UTC (rev 12790)
@@ -10,11 +10,9 @@
******************************************************************************/
package org.jboss.tools.vpe.editor;
-import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.Properties;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@@ -23,12 +21,7 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
import org.eclipse.jface.bindings.Binding;
import org.eclipse.jface.bindings.keys.KeySequence;
import org.eclipse.jface.bindings.keys.KeyStroke;
@@ -39,8 +32,6 @@
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.LineStyleEvent;
import org.eclipse.swt.custom.LineStyleListener;
@@ -59,13 +50,11 @@
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.internal.keys.WorkbenchKeyboard;
import org.eclipse.ui.keys.IBindingService;
import org.eclipse.ui.progress.UIJob;
@@ -81,13 +70,8 @@
import org.eclipse.wst.sse.ui.internal.view.events.ITextSelectionListener;
import org.eclipse.wst.sse.ui.internal.view.events.NodeSelectionChangedEvent;
import org.eclipse.wst.sse.ui.internal.view.events.TextSelectionChangedEvent;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.eclipse.wst.xml.core.internal.document.NodeImpl;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
import org.jboss.tools.common.el.core.ELReferenceList;
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.XModelObject;
@@ -104,12 +88,9 @@
import org.jboss.tools.common.model.ui.editors.dnd.context.DropContext;
import org.jboss.tools.common.model.ui.editors.dnd.context.IDNDTextEditor;
import org.jboss.tools.common.model.ui.editors.dnd.context.InnerDragBuffer;
-import org.jboss.tools.common.model.ui.objecteditor.ExtendedProperties;
-import org.jboss.tools.common.model.ui.objecteditor.ExtendedPropertiesWizard;
import org.jboss.tools.common.model.ui.util.ModelUtilities;
import org.jboss.tools.common.model.ui.views.palette.PaletteInsertHelper;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
-import org.jboss.tools.common.model.util.ModelFeatureFactory;
import org.jboss.tools.common.model.util.XModelTreeListenerSWTSync;
import org.jboss.tools.common.resref.core.ResourceReferenceListListener;
import org.jboss.tools.jst.jsp.editor.IJSPTextEditor;
@@ -117,7 +98,6 @@
import org.jboss.tools.jst.jsp.preferences.VpePreference;
import org.jboss.tools.jst.web.model.helpers.WebAppHelper;
import org.jboss.tools.jst.web.project.WebProject;
-import org.jboss.tools.jst.web.tld.TLDToPaletteHelper;
import org.jboss.tools.jst.web.tld.TLDUtil;
import org.jboss.tools.jst.web.tld.URIConstants;
import org.jboss.tools.vpe.VpeDebug;
@@ -126,10 +106,8 @@
import org.jboss.tools.vpe.editor.bundle.BundleMap;
import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.mapping.VpeDomMapping;
-import org.jboss.tools.vpe.editor.mapping.VpeElementMapping;
import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
-import org.jboss.tools.vpe.editor.menu.NodeActionManager;
-import org.jboss.tools.vpe.editor.menu.BaseActionManager.MyMenuManager;
+import org.jboss.tools.vpe.editor.menu.MenuCreationHelper;
import org.jboss.tools.vpe.editor.mozilla.EditorDomEventListener;
import org.jboss.tools.vpe.editor.mozilla.MozillaDropInfo;
import org.jboss.tools.vpe.editor.mozilla.MozillaEditor;
@@ -139,16 +117,12 @@
import org.jboss.tools.vpe.editor.template.ISelectionManager;
import org.jboss.tools.vpe.editor.template.KeyEventManager;
import org.jboss.tools.vpe.editor.template.SelectionManager;
-import org.jboss.tools.vpe.editor.template.VpeAnyData;
-import org.jboss.tools.vpe.editor.template.VpeEditAnyDialog;
-import org.jboss.tools.vpe.editor.template.VpeHtmlTemplate;
import org.jboss.tools.vpe.editor.template.VpeIncludeList;
-import org.jboss.tools.vpe.editor.template.VpeTemplate;
import org.jboss.tools.vpe.editor.template.VpeTemplateListener;
import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
import org.jboss.tools.vpe.editor.toolbar.format.FormatControllerManager;
+import org.jboss.tools.vpe.editor.util.Constants;
import org.jboss.tools.vpe.editor.util.DocTypeUtil;
-import org.jboss.tools.vpe.editor.util.NodesManagingUtil;
import org.jboss.tools.vpe.editor.util.SelectionUtil;
import org.jboss.tools.vpe.editor.util.VisualDomUtil;
import org.jboss.tools.vpe.editor.util.VpeDndUtil;
@@ -158,7 +132,6 @@
import org.jboss.tools.vpe.resref.core.RelativeFolderReferenceList;
import org.jboss.tools.vpe.resref.core.TaglibReferenceList;
import org.jboss.tools.vpe.selbar.SelectionBar;
-import org.jboss.tools.vpe.xulrunner.browser.util.DOMTreeDumper;
import org.jboss.tools.vpe.xulrunner.editor.XulRunnerEditor;
import org.mozilla.interfaces.nsIDOMDocument;
import org.mozilla.interfaces.nsIDOMElement;
@@ -177,10 +150,7 @@
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
public class VpeController implements INodeAdapter, IModelLifecycleListener,
INodeSelectionListener, ITextSelectionListener, SelectionListener,
@@ -379,7 +349,6 @@
}
public void dispose() {
-
if (job != null) {
job.cancel();
job = null;
@@ -397,8 +366,7 @@
}
if (optionsListener != null) {
- XModelObject optionsObject = ModelUtilities.getPreferenceModel()
- .getByPath(VpePreference.EDITOR_PATH);
+ XModelObject optionsObject = ModelUtilities.getPreferenceModel().getByPath(VpePreference.EDITOR_PATH);
optionsObject.getModel().removeModelTreeListener(optionsListener);
optionsListener.dispose();
optionsListener = null;
@@ -410,7 +378,6 @@
switcher.destroyActiveEditor();
switcher = null;
-
VpeTemplateManager.getInstance().removeTemplateListener(this);
if (visualBuilder != null) {
@@ -440,7 +407,6 @@
if (visualEditor != null) {
visualEditor.setEditorDomEventListener(null);
if (visualSelectionController != null) {
-
// visualSelectionController.Release();
visualSelectionController = null;
}
@@ -490,7 +456,6 @@
display = PlatformUI.getWorkbench().getDisplay();
if (display != null && (Thread.currentThread() == display.getThread())) {
-
getChangeEvents().addLast(
new VpeEventBean(notifier, eventType, feature, oldValue,
newValue, pos));
@@ -498,15 +463,10 @@
uiJob = new UIJob(VpeUIMessages.VPE_UPDATE_JOB_TITLE) {
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
-
- monitor.beginTask(VpeUIMessages.VPE_UPDATE_JOB_TITLE,
- 100);
+ monitor.beginTask(VpeUIMessages.VPE_UPDATE_JOB_TITLE, 100);
while (getChangeEvents().size() > 0) {
-
- monitor.worked((int) (100 / getChangeEvents()
- .size()));
- VpeEventBean eventBean = getChangeEvents()
- .getFirst();
+ monitor.worked((int) (100 / getChangeEvents().size()));
+ VpeEventBean eventBean = getChangeEvents().getFirst();
if (monitor.isCanceled()) {
getChangeEvents().clear();
return Status.CANCEL_STATUS;
@@ -527,7 +487,6 @@
// exception
break;
} catch (NullPointerException ex) {
-
if (switcher != null) {
throw ex;
} else {
@@ -539,30 +498,23 @@
}
getChangeEvents().remove(eventBean);
}
-
// cause is to lock calls others events
- if (switcher!=null&&switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE))
+ if (switcher != null &&
+ switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE))
try {
sourceSelectionChanged();
-
} finally {
switcher.stopActiveEditor();
}
-
monitor.done();
-
return Status.OK_STATUS;
}
-
};
}
if (uiJob.getState() != Job.RUNNING) {
-
uiJob.setPriority(Job.LONG);
// Fix of JBIDE-1900
-
uiJob.schedule(getVpeUpdateDelayTime());
} else {
uiJob.cancel();
@@ -584,8 +536,7 @@
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
} else {
- notifyChangedInUiThread(notifier, eventType, feature,
- oldValue, newValue, pos);
+ notifyChangedInUiThread(notifier, eventType, feature, oldValue, newValue, pos);
}
return Status.OK_STATUS;
}
@@ -596,21 +547,18 @@
public void notifyChangedInUiThread(INodeNotifier notifier, int eventType,
Object feature, Object oldValue, Object newValue, int pos) {
- if (switcher == null
- || !switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (switcher == null ||
+ !switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return;
}
try {
if (VpeDebug.PRINT_SOURCE_MUTATION_EVENT) {
- printSourceEvent(notifier, eventType, feature, oldValue,
- newValue, pos);
+ printSourceEvent(notifier, eventType, feature, oldValue, newValue, pos);
}
if (visualBuilder == null) {
return;
}
// visualBuilder.rebuildFlag = false;
-
switch (eventType) {
case INodeNotifier.CHANGE:
sourceChangeFlag = true;
@@ -635,16 +583,14 @@
if ((Attr) feature == lastRemovedAttr
&& !attrName.equals(lastRemovedAttrName)) {
lastRemovedAttr = null;
- visualBuilder.removeAttribute((Element) notifier,
- lastRemovedAttrName);
+ visualBuilder.removeAttribute((Element) notifier, lastRemovedAttrName);
}
visualBuilder.setAttribute((Element) notifier,
((Attr) feature).getName(), (String) newValue);
} else {
lastRemovedAttr = (Attr) feature;
lastRemovedAttrName = ((Attr) feature).getName();
- visualBuilder.removeAttribute((Element) notifier,
- lastRemovedAttrName);
+ visualBuilder.removeAttribute((Element) notifier, lastRemovedAttrName);
}
}
visualEditor.showResizer();
@@ -687,11 +633,9 @@
} finally {
// fix for jbide-675, swithcer is null when vpecontroller is
// disposed
-
if (switcher != null) {
switcher.stopActiveEditor();
} else {
-
throw new VpeDisposeException("VpeController already disposed");
}
}
@@ -699,8 +643,7 @@
// INodeSelectionListener implementation
public void nodeSelectionChanged(NodeSelectionChangedEvent event) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return;
}
try {
@@ -708,8 +651,8 @@
if (nodes != null && nodes.size() > 0) {
Node sourceNode = (Node) nodes.get(0);
if (VpeDebug.PRINT_SOURCE_SELECTION_EVENT) {
- System.out
- .println(">>>>>>>>>>>>>> nodeSelectionChanged sourceNode: " + sourceNode.getNodeName() + " " + event.getCaretPosition()); //$NON-NLS-1$ //$NON-NLS-2$
+ System.out.println(">>>>>>>>>>>>>> nodeSelectionChanged sourceNode: " + //$NON-NLS-1$
+ sourceNode.getNodeName() + Constants.WHITE_SPACE + event.getCaretPosition());
}
if (event.getSource() instanceof IContentOutlinePage) {
sourceSelectionChanged();
@@ -723,14 +666,12 @@
// ITextSelectionListener implementation
// TODO Max Areshau looks like this method don't used
public void textSelectionChanged(TextSelectionChangedEvent event) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return;
}
try {
if (VpeDebug.PRINT_SOURCE_SELECTION_EVENT) {
- System.out
- .println(">>>>>>>>>>>>>> textSelectionChanged " + event.getSource()); //$NON-NLS-1$
+ System.out.println(">>>>>>>>>>>>>> textSelectionChanged " + event.getSource()); //$NON-NLS-1$
}
// if (event.getSource() instanceof StyledText) {
sourceSelectionChanged();
@@ -742,8 +683,7 @@
// SelectionListener implementation
public void widgetSelected(SelectionEvent event) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return;
}
try {
@@ -769,11 +709,9 @@
}
public void sourceSelectionChanged(boolean showCaret) {
-
// we should processed if we have correct view in visual editor,
// otherwise we shouldn't process this event
if (getChangeEvents().size() > 0) {
-
return;
}
@@ -864,8 +802,7 @@
}
public void sourceSelectionToVisualSelection(boolean showCaret) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return;
}
try {
@@ -880,8 +817,7 @@
}
public void processPostModelEvent(ModelLifecycleEvent event) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return;
}
try {
@@ -893,13 +829,12 @@
* this event.When editor closes generation of this event depends
* from containing any service href on model or not. It's can be a
* reason of problems on reopen file.
- *
+ *
* We shouldn't call here rebuild dom.
*/
if (event.getType() == ModelLifecycleEvent.MODEL_RELEASED) {
if (VpeDebug.PRINT_SOURCE_MODEL_LIFECYCLE_EVENT) {
- System.out
- .println(">>> processPostModelEvent: " + event.toString()); //$NON-NLS-1$
+ System.out.println(">>> processPostModelEvent: " + event.toString()); //$NON-NLS-1$
}
// commented to fix org.mozilla.xpcom.XPCOMException: The function "repaint" returned an error condition (0x8000ffff)
//visualBuilder.setSelectionRectangle(null);
@@ -922,8 +857,7 @@
// EditorDomEventListener implementation
public void subtreeModified(nsIDOMMutationEvent mutationEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -936,8 +870,7 @@
}
public void nodeInserted(nsIDOMMutationEvent mutationEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -955,8 +888,7 @@
}
public void nodeRemoved(nsIDOMMutationEvent mutationEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -975,8 +907,7 @@
}
public void nodeRemovedFromDocument(nsIDOMMutationEvent mutationEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -989,8 +920,7 @@
}
public void nodeInsertedIntoDocument(nsIDOMMutationEvent mutationEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1003,8 +933,7 @@
}
public void attrModified(nsIDOMMutationEvent mutationEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1017,8 +946,7 @@
}
public void characterDataModified(nsIDOMMutationEvent mutationEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1033,10 +961,8 @@
}
}
- public void notifySelectionChanged(nsIDOMDocument doc,
- nsISelection selection, short reason) {
- if (switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ public void notifySelectionChanged(nsIDOMDocument doc, nsISelection selection, short reason) {
+ if (switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
try {
mouseUpSelectionReasonFlag = (reason & nsISelectionListener.MOUSEUP_REASON) > 0;
if (mouseUpSelectionReasonFlag
@@ -1047,11 +973,8 @@
|| reason == nsISelectionListener.KEYPRESS_REASON
|| reason == nsISelectionListener.SELECTALL_REASON
|| (reason & nsISelectionListener.MOUSEDOWN_REASON) > 0) {
-
if (VpeDebug.PRINT_VISUAL_SELECTION_EVENT) {
- System.out
- .println("<<< notifySelectionChanged: " + reason); //$NON-NLS-1$
-
+ System.out.println("<<< notifySelectionChanged: " + reason); //$NON-NLS-1$
}
nsIDOMNode node = SelectionUtil.getSelectedNode(selection);
/*
@@ -1059,7 +982,6 @@
* Checking if the node is of text type was removed
* to allow <select> node to be selected on the first click.
*/
-
if (node != null) {
selectionManager.setSelection(selection);
}
@@ -1073,8 +995,7 @@
}
public void mouseDown(nsIDOMMouseEvent mouseEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1091,7 +1012,7 @@
// .getDragElement(mouseEvent);
if (VpeDebug.PRINT_VISUAL_MOUSE_EVENT) {
nsIDOMNode visualNode = VisualDomUtil.getTargetNode(mouseEvent);
- System.out.println("<<< mouseDown targetNode: " /*
+ System.out.println("<<< mouseDown targetNode: " /* //$NON-NLS-1$
* +visualNode.
* getNodeName()
* + " (" +
@@ -1106,7 +1027,7 @@
* + " (" +
* visualDragElement
* + ")" : null)
- */); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+ */);
}
//
// if (visualDragElement != null) {
@@ -1132,19 +1053,16 @@
// }
// }
-
// selection will be set only if press left button
if (mouseEvent.getButton() == LEFT_BUTTON)
selectionManager.setSelection(mouseEvent);
-
} finally {
switcher.stopActiveEditor();
}
}
public void mouseUp(nsIDOMMouseEvent mouseEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1163,8 +1081,7 @@
}
public void mouseClick(nsIDOMMouseEvent mouseEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1172,8 +1089,8 @@
if (visualNode != null) {
if (!mouseUpSelectionReasonFlag) {
if (VpeDebug.PRINT_VISUAL_MOUSE_EVENT) {
- System.out
- .println("<<< mouseClick visualNode: " + visualNode.getNodeName() + " (" + visualNode + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ System.out.println("<<< mouseClick visualNode: " + visualNode.getNodeName() + //$NON-NLS-1$
+ " (" + visualNode + ")"); //$NON-NLS-1$ //$NON-NLS-2$
}
if (visualBuilder.isContentArea(visualNode)) {
// selectionBuilder.setClickContentAreaSelection();
@@ -1182,8 +1099,7 @@
mouseUpSelectionReasonFlag = false;
}
- if (visualBuilder.doToggle(VisualDomUtil
- .getTargetNode(mouseEvent))) {
+ if (visualBuilder.doToggle(VisualDomUtil.getTargetNode(mouseEvent))) {
// selectionBuilder.setClickContentAreaSelection();
}
}
@@ -1193,8 +1109,7 @@
}
public void mouseDblClick(nsIDOMMouseEvent mouseEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1204,10 +1119,9 @@
sourceBuilder.openIncludeEditor(visualNode);
}
if (VpeDebug.PRINT_VISUAL_MOUSE_EVENT) {
- System.out
- .println("<<< mouseDblClick visualNode: " + visualNode.getNodeName() + " (" + visualNode + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ System.out.println("<<< mouseDblClick visualNode: " + visualNode.getNodeName() + //$NON-NLS-1$
+ " (" + visualNode + ")"); //$NON-NLS-1$ //$NON-NLS-2$
}
-
}
} finally {
switcher.stopActiveEditor();
@@ -1215,8 +1129,7 @@
}
public void mouseMove(nsIDOMMouseEvent mouseEvent) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1236,11 +1149,11 @@
public void keyPress(nsIDOMKeyEvent keyEvent) {
if (VpeDebug.PRINT_VISUAL_KEY_EVENT) {
- System.out
- .println("<<< keyPress type: " + keyEvent.getType() + " Ctrl: " + keyEvent.getCtrlKey() + " Shift: " + keyEvent.getShiftKey() + " CharCode: " + keyEvent.getCharCode() + " KeyCode: " + keyEvent.getKeyCode()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+ System.out.println("<<< keyPress type: " + keyEvent.getType() + //$NON-NLS-1$
+ " Ctrl: " + keyEvent.getCtrlKey() + " Shift: " + keyEvent.getShiftKey() + //$NON-NLS-1$ //$NON-NLS-2$
+ " CharCode: " + keyEvent.getCharCode() + " KeyCode: " + keyEvent.getKeyCode()); //$NON-NLS-1$ //$NON-NLS-2$
}
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
switcher.stopActiveEditor();
return;
}
@@ -1286,27 +1199,19 @@
KeySequence sequenceBeforeKeyStroke = KeySequence.getInstance();
- for (Iterator<KeyStroke> iterator = possibleKeyStrokes
- .iterator(); iterator.hasNext();) {
-
- KeySequence sequenceAfterKeyStroke = KeySequence
- .getInstance(sequenceBeforeKeyStroke, iterator
- .next());
+ for (Iterator<KeyStroke> iterator = possibleKeyStrokes.iterator(); iterator.hasNext();) {
+ KeySequence sequenceAfterKeyStroke =
+ KeySequence.getInstance(sequenceBeforeKeyStroke, iterator.next());
if (iBindingService.isPerfectMatch(sequenceAfterKeyStroke)) {
- final Binding binding = iBindingService
- .getPerfectMatch(sequenceAfterKeyStroke);
-
+ final Binding binding = iBindingService.getPerfectMatch(sequenceAfterKeyStroke);
if ((binding != null)
&& (binding.getParameterizedCommand() != null)
- && (binding.getParameterizedCommand()
- .getCommand() != null)) {
+ && (binding.getParameterizedCommand().getCommand() != null)) {
keyBindingPressed = true;
}
}
}
}
-
-
/*
* Sends xulrunner event to eclipse environment.
* dmaliarevich: while fixing JBIDE-2562 I found that
@@ -1346,13 +1251,11 @@
// }
}
}
-
}
public void elementResized(nsIDOMElement element, int resizerConstrains,
int top, int left, int width, int height) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
return;
}
try {
@@ -1360,15 +1263,13 @@
} finally {
switcher.stopActiveEditor();
}
- visualBuilder.resize(element, resizerConstrains, top, left, width,
- height);
+ visualBuilder.resize(element, resizerConstrains, top, left, width, height);
sourceSelectionChanged();
}
public void dragGesture(nsIDOMEvent domEvent) {
-
- nsIDOMMouseEvent mouseEvent = (nsIDOMMouseEvent) domEvent
- .queryInterface(nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID);
+ nsIDOMMouseEvent mouseEvent =
+ (nsIDOMMouseEvent) domEvent.queryInterface(nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID);
boolean canDragFlag = canInnerDrag(mouseEvent);
// start drag sessionvpe-element
if (canDragFlag) {
@@ -1376,357 +1277,59 @@
}
}
- private void createMenuForNode(Node node, MenuManager manager) {
- createMenuForNode(node, manager, false);
- }
-
- private void createMenuForNode(Node node, MenuManager manager,
- boolean topLevelFlag) {
- NodeActionManager.setTextNodeSplitter(null);
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- VpeElementMapping elementMapping = (VpeElementMapping) domMapping
- .getNodeMapping(node);
- if (elementMapping != null && elementMapping.getTemplate() != null) {
- manager.add(new VpeAction(
- "<" + node.getNodeName() + "> Attributes", node) { //$NON-NLS-1$ //$NON-NLS-2$
- public void run() {
- showProperties(actionNode);
- }
- });
-
- if (!topLevelFlag) {
- manager.add(new VpeAction("Select This Tag", node) { //$NON-NLS-1$
- public void run() {
- SelectionUtil.setSourceSelection(
- pageContext, actionNode);
-
- }
- });
- }
- Node parent = node.getParentNode();
- if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
- MenuManager menuManager = new MenuManager("Parent Tag"); //$NON-NLS-1$
- menuManager.setParent(manager);
- manager.add(menuManager);
- createMenuForNode(parent, menuManager);
- }
-
- manager.add(new Separator());
- }
- }
- NodeActionManager actionManager = new NodeActionManager(getModel(),
- null);
-
- if (node.getNodeType() == Node.TEXT_NODE) {
- Point range = sourceEditor.getTextViewer().getSelectedRange();
- TextNodeSplitterImpl splitter = new TextNodeSplitterImpl(range,
- (Text) node);
- NodeActionManager.setTextNodeSplitter(splitter);
- }
-
- if (actionManager != null) {
- StructuredSelection structuredSelection = new StructuredSelection(
- node);
- actionManager.fillContextMenuForVpe(manager, structuredSelection);
-
- }
-
- IContributionItem[] items = manager.getItems();
-
- // fixed for JBIDE-3072
- // add "insert arround",
- for (int i = 0; i < items.length; i++) {
- if (items[i] instanceof MenuManager) {
- MenuManager mm = (MenuManager) items[i];
- int type = 0;
- Point region = null;
- if (NodeActionManager.INSERT_AROUND_MENU.equals(mm
- .getMenuText())) {
- type = AROUND_MENU;
-
- // if node is text then allow to wrap only selected text
- if (node.getNodeType() == Node.TEXT_NODE) {
-
- region = SelectionUtil
- .getSourceSelectionRange(sourceEditor);
- }
- // else wrap all tag
- else {
- region = NodesManagingUtil.getNodeRange(node);
- }
-
- } else if (NodeActionManager.INSERT_BEFORE_MENU.equals(mm
- .getMenuText())) {
- type = BEFORE_MENU;
- region = new Point(NodesManagingUtil
- .getStartOffsetNode(node), 0);
- } else if (NodeActionManager.INSERT_AFTER_MENU.equals(mm
- .getMenuText())) {
- type = AFTER_MENU;
- region = new Point(
- NodesManagingUtil.getEndOffsetNode(node), 0);
- }
- listenContextMenu(mm, region, type);
- }
- }
-
- manager.add(new Separator());
-
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- VpeElementMapping elementMapping = (VpeElementMapping) domMapping
- .getNodeMapping(node);
- if (elementMapping != null
- && elementMapping.getTemplate() != null
- && elementMapping.getTemplate().getType() == VpeHtmlTemplate.TYPE_ANY) {
- final VpeTemplate selectedTemplate = elementMapping
- .getTemplate();
- manager.add(new VpeAction(NLS.bind(VpeUIMessages.SETUP_TEMPLATE_FOR_MENU,"<" + node.getNodeName() + ">"), node) { //$NON-NLS-1$
- public void run() {
- boolean isCorrectNS = pageContext
- .isCorrectNS(actionNode);
- VpeAnyData data = null;
- if (isCorrectNS) {
- data = selectedTemplate.getAnyData();
- data.setUri(pageContext
- .getSourceTaglibUri(actionNode));
- data.setName(actionNode.getNodeName());
- }
- data = editAnyData(sourceEditor, isCorrectNS,
- data);
- if (data != null && data.isChanged())
- VpeTemplateManager.getInstance().setAnyTemplate(data);
- }
- });
-
- manager.add(new Separator());
- }
-
- manager.add(new VpeTextOperationAction(
- "Cut", ActionFactory.CUT.getId(), node)); //$NON-NLS-1$
- manager.add(new VpeTextOperationAction(
- "Copy", ActionFactory.COPY.getId(), node)); //$NON-NLS-1$
- manager
- .add(new VpeTextOperationAction(
- "Paste", ActionFactory.PASTE.getId(), node)); //$NON-NLS-1$
- } else if (node.getNodeType() == Node.TEXT_NODE) {
- manager.add(new Action("Cut") { //$NON-NLS-1$
- public void run() {
- sourceEditor.getAction(ActionFactory.CUT.getId())
- .run();
- }
- });
- manager.add(new Action("Copy") { //$NON-NLS-1$
- public void run() {
- sourceEditor.getAction(ActionFactory.COPY.getId())
- .run();
- }
- });
- manager.add(new Action("Paste") { //$NON-NLS-1$
- public void run() {
- sourceEditor.getAction(ActionFactory.PASTE.getId())
- .run();
- }
- });
- }
- manager.add(new Separator());
-
- if (actionManager != null) {
- StructuredSelection structuredSelection = node.getNodeType() == Node.ELEMENT_NODE ? new StructuredSelection(
- node)
- : null;
- actionManager.addContextMenuForVpe(manager, structuredSelection);
- }
-
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- boolean stripEnable = false;
- NodeImpl impl = (NodeImpl) node;
- if (impl.isContainer()) {
- NodeList list = impl.getChildNodes();
- if (list.getLength() > 0) {
- if (list.getLength() == 1) {
- Node child = list.item(0);
- if (child.getNodeType() == Node.TEXT_NODE) {
- if ("".equals(child.getNodeValue().trim()))stripEnable = false; //$NON-NLS-1$
- else
- stripEnable = true;
- } else
- stripEnable = true;
- } else
- stripEnable = true;
- }
- }
- if (stripEnable)
- manager.add(new VpeAction("Strip Tag", node) { //$NON-NLS-1$
- public void run() {
- Node parent = actionNode.getParentNode();
- if (parent != null) {
- int index = ((NodeImpl) actionNode)
- .getIndex();
- parent.removeChild(actionNode);
- NodeList children = actionNode
- .getChildNodes();
- int lengh = children.getLength();
- Node child;
- for (int i = 0; i < lengh; i++) {
- child = children.item(0);
- actionNode.removeChild(child);
- insertNode(parent, child, index++);
- }
- }
- }
-
- private void insertNode(Node parent, Node node,
- int index) {
- Node oldNode = null;
- int childSize = parent.getChildNodes()
- .getLength();
-
- if (index <= (childSize - 1))
- oldNode = parent.getChildNodes()
- .item(index);
- if (oldNode != null)
- parent.insertBefore(node, oldNode);
- else
- parent.appendChild(node);
- }
- });
- }
- if (node.getNodeType() == Node.TEXT_NODE) {
- manager.add(new Action("Delete") { //$NON-NLS-1$
- public void run() {
- sourceEditor
- .getAction(ActionFactory.DELETE.getId())
- .run();
- }
- });
- }
-
-
- if (VpeDebug.VISUAL_CONTEXTMENU_DUMP_SOURCE) {
- manager.add(new Action("Dump Source") { //$NON-NLS-1$
- public void run() {
- DOMTreeDumper dumper = new DOMTreeDumper(
- VpeDebug.VISUAL_DUMP_PRINT_HASH);
- dumper.setIgnoredAttributes(VpeDebug.VISUAL_DUMP_IGNORED_ATTRIBUTES);
- dumper.dumpToStream(System.out, visualEditor
- .getDomDocument());
- }
- });
- }
-
- if (VpeDebug.VISUAL_CONTEXTMENU_DUMP_SELECTED_ELEMENT) {
- manager.add(new Action("Dump Selected Element") { //$NON-NLS-1$
- public void run() {
-
- VpeNodeMapping nodeMapping = SelectionUtil
- .getNodeMappingBySourceSelection(
- sourceEditor, domMapping);
-
- if (nodeMapping != null) {
-
- DOMTreeDumper dumper = new DOMTreeDumper(
- VpeDebug.VISUAL_DUMP_PRINT_HASH);
- dumper.setIgnoredAttributes(VpeDebug.VISUAL_DUMP_IGNORED_ATTRIBUTES);
- dumper.dumpNode(nodeMapping.getVisualNode());
- }
- }
- });
- }
-
- if (VpeDebug.VISUAL_CONTEXTMENU_DUMP_MAPPING) {
- manager.add(new Action("Dump Mapping") { //$NON-NLS-1$
- public void run() {
- printMapping();
- }
- });
- }
-
- if (VpeDebug.VISUAL_CONTEXTMENU_TEST) {
- manager.add(new VpeAction("Test", node) { //$NON-NLS-1$
- public void run() {
- test(actionNode);
- }
- });
- }
- }
-
/**
* Calls when on when browser receive context menu event.
- *
+ *
* @param contextFlags
- * -not used in this function, just for becouse this parametr
+ * -not used in this function, just for because this parameter
* exist in nsIContextMenuListener
* @param event
* event from browser used here
* @param node
* where this event are occur
*/
- public void onShowContextMenu(long contextFlags, nsIDOMEvent event,
- nsIDOMNode node) {
-
+ public void onShowContextMenu(long contextFlags, nsIDOMEvent event, nsIDOMNode node) {
//FIXED FOR JBIDE-3072 by sdzmitrovich
-
- // nsIDOMNode visualNode = VisualDomUtil.getTargetNode(event);
- // if (visualNode != null) {
+
+// nsIDOMNode visualNode = VisualDomUtil.getTargetNode(event);
+// if (visualNode != null) {
Node selectedSourceNode = null;
- VpeNodeMapping nodeMapping = SelectionUtil
- .getNodeMappingBySourceSelection(sourceEditor, domMapping);
-
- if (nodeMapping != null)
+ VpeNodeMapping nodeMapping = SelectionUtil.getNodeMappingBySourceSelection(sourceEditor, domMapping);
+ if (nodeMapping != null) {
selectedSourceNode = nodeMapping.getSourceNode();
+ }
- // selectedSourceNode = selectionBuilder
- // .setContextMenuSelection(visualNode);
- if (selectedSourceNode != null) {
+ MenuManager menuManager = new MenuManager("#popup"); //$NON-NLS-1$
+ final Menu contextMenu = menuManager.createContextMenu(visualEditor.getControl());
+ contextMenu.addMenuListener(new MenuListener() {
+ Menu menu = contextMenu;
+ public void menuHidden(MenuEvent e) {
+ Display.getCurrent().asyncExec(new Runnable() {
+ public void run() {
+ menu.dispose();
+ }
+ });
+ }
+ public void menuShown(MenuEvent e) {
+ }
+ });
- MenuManager menuManager = new MenuManager("#popup"); //$NON-NLS-1$
- final Menu contextMenu = menuManager.createContextMenu(visualEditor
- .getControl());
- contextMenu.addMenuListener(new MenuListener() {
- Menu menu = contextMenu;
+ // create context menu
+ MenuCreationHelper menuCreationHelper =
+ new MenuCreationHelper(domMapping, pageContext, sourceEditor, visualEditor);
+ menuCreationHelper.createMenuForNode(selectedSourceNode, menuManager, true);
- public void menuHidden(MenuEvent e) {
- Display.getCurrent().asyncExec(new Runnable() {
- public void run() {
- menu.dispose();
- }
- });
- }
-
- public void menuShown(MenuEvent e) {
- }
- });
- createMenuForNode(selectedSourceNode, menuManager, true);
-
- contextMenu.setVisible(true);
-
- // }
- }
+ contextMenu.setVisible(true);
+// }
}
- private VpeAnyData editAnyData(StructuredTextEditor sourceEditor,
- boolean isCorrectNS, VpeAnyData data) {
- Shell shell = sourceEditor.getEditorPart().getSite().getShell();
- if (isCorrectNS) {
- VpeEditAnyDialog editDialog = new VpeEditAnyDialog(shell, data);
- editDialog.open();
- } else {
- MessageBox message = new MessageBox(shell, SWT.ICON_WARNING
- | SWT.OK);
- message.setMessage(VpeUIMessages.NAMESPACE_NOT_DEFINED);
- message.open();
- }
- return data;
- }
-
// VpeTemplateListener implementation
public void templateReloaded() {
visualRefresh();
}
-
- public void visualRefresh() {
+ public void visualRefresh() {
if (!isVisualEditorVisible()) {
setSynced(false);
return;
@@ -1735,30 +1338,23 @@
return;
}
if (visualRefresfJob == null || visualRefresfJob.getState() == Job.NONE) {
-
visualRefresfJob = new UIJob(VpeUIMessages.VPE_VISUAL_REFRESH_JOB) {
-
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
-
if (monitor.isCanceled()) {
-
return Status.CANCEL_STATUS;
}
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return Status.CANCEL_STATUS;
}
try {
- monitor.beginTask(VpeUIMessages.VPE_VISUAL_REFRESH_JOB,
- IProgressMonitor.UNKNOWN);
+ monitor.beginTask(VpeUIMessages.VPE_VISUAL_REFRESH_JOB, IProgressMonitor.UNKNOWN);
visualRefreshImpl();
monitor.done();
setSynced(true);
} catch (VpeDisposeException exc) {
// just ignore this exception
} catch (NullPointerException ex) {
-
if (switcher != null) {
throw ex;
} else {
@@ -1768,9 +1364,7 @@
// exception
}
} finally {
-
if (switcher != null) {
-
switcher.stopActiveEditor();
}
}
@@ -1784,16 +1378,11 @@
}
void visualRefreshImpl() {
-
visualEditor.hideResizer();
- String currentDoctype = DocTypeUtil.getDoctype(visualEditor
- .getEditorInput());
-
+ String currentDoctype = DocTypeUtil.getDoctype(visualEditor.getEditorInput());
if (!visualEditor.getDoctype().equals(currentDoctype)) {
-
visualEditor.reload();
-
} else {
//Fix bugs JBIDE-2750
visualBuilder.setSelectionRectangle(null);
@@ -1805,7 +1394,6 @@
// } else {
// visualBuilder.rebuildDom(null);
// }
-
}
}
@@ -1821,28 +1409,30 @@
// for debug
private void printSourceEvent(INodeNotifier notifier, int eventType,
Object feature, Object oldValue, Object newValue, int pos) {
- System.out
- .println(">>> eventType: " + INodeNotifier.EVENT_TYPE_STRINGS[eventType] + " pos: " + pos + " notifier: " + ((Node) notifier).getNodeName() + " hashCode: " + notifier.hashCode()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ System.out.println(">>> eventType: " + INodeNotifier.EVENT_TYPE_STRINGS[eventType] + //$NON-NLS-1$
+ " pos: " + pos + " notifier: " + ((Node) notifier).getNodeName() + //$NON-NLS-1$ //$NON-NLS-2$
+ " hashCode: " + notifier.hashCode()); //$NON-NLS-1$
if (feature != null) {
if (feature instanceof Node) {
- System.out
- .println(" feature: " + ((Node) feature).getNodeType() + " " + ((Node) feature).getNodeName() + " hashCode: " + feature.hashCode()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ System.out.println(" feature: " + ((Node) feature).getNodeType() + //$NON-NLS-1$
+ Constants.WHITE_SPACE + ((Node) feature).getNodeName() +
+ " hashCode: " + feature.hashCode()); //$NON-NLS-1$
} else {
System.out.println(" feature: " + feature); //$NON-NLS-1$
}
}
if (oldValue != null) {
if (oldValue instanceof Node) {
- System.out
- .println(" oldValue: " + ((Node) oldValue).getNodeName() + " hashCode: " + oldValue.hashCode()); //$NON-NLS-1$ //$NON-NLS-2$
+ System.out.println(" oldValue: " + ((Node) oldValue).getNodeName() + //$NON-NLS-1$
+ " hashCode: " + oldValue.hashCode()); //$NON-NLS-1$
} else {
System.out.println(" oldValue: " + oldValue); //$NON-NLS-1$
}
}
if (newValue != null) {
if (newValue instanceof Node) {
- System.out
- .println(" newValue: " + ((Node) newValue).getNodeName() + " hashCode: " + newValue.hashCode() + " " + ((Node) newValue).getNodeType()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ System.out.println(" newValue: " + ((Node) newValue).getNodeName() + //$NON-NLS-1$
+ " hashCode: " + newValue.hashCode() + Constants.WHITE_SPACE + ((Node) newValue).getNodeType()); //$NON-NLS-1$
} else {
System.out.println(" newValue: " + newValue); //$NON-NLS-1$
}
@@ -1858,25 +1448,18 @@
System.out.print(" EventPhase: " + mutationEvent.getEventPhase()); //$NON-NLS-1$
nsIDOMNode relatedNode = mutationEvent.getRelatedNode();
- System.out
- .print(" RelatedNode: " + (relatedNode == null ? null : relatedNode.getNodeName())); //$NON-NLS-1$
+ System.out.print(" RelatedNode: " + (relatedNode == null ? null : relatedNode.getNodeName())); //$NON-NLS-1$
nsIDOMNode targetNode = VisualDomUtil.getTargetNode(mutationEvent);
String name = targetNode != null ? targetNode.getNodeName() : null;
System.out.print(" TargetNode: " + name + " (" + targetNode + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- System.out
- .print(" PrevValue: " + mutationEvent.getPrevValue().trim()); //$NON-NLS-1$
- System.out
- .print(" NewValue: " + mutationEvent.getNewValue().trim()); //$NON-NLS-1$
+ System.out.print(" PrevValue: " + mutationEvent.getPrevValue().trim()); //$NON-NLS-1$
+ System.out.print(" NewValue: " + mutationEvent.getNewValue().trim()); //$NON-NLS-1$
}
System.out.println();
}
- private void printMapping() {
- domMapping.printMapping();
- }
-
private class ActiveEditorSwitcher {
private static final int ACTIVE_EDITOR_CANNOT = 0;
private static final int ACTIVE_EDITOR_NONE = 1;
@@ -1912,57 +1495,22 @@
}
}
- private void showProperties(Node node) {
- ExtendedProperties p = createExtendedProperties(node);
- if (p != null)
- ExtendedPropertiesWizard.run(p);
- }
-
- ExtendedProperties createExtendedProperties(Node node) {
-
- Class c = ModelFeatureFactory.getInstance().getFeatureClass(
- "org.jboss.tools.jst.jsp.outline.VpeProperties"); //$NON-NLS-1$
- try {
- return (ExtendedProperties) c.getDeclaredConstructor(
- new Class[] { Node.class }).newInstance(
- new Object[] { node });
- } catch (IllegalArgumentException e) {
- VpePlugin.getPluginLog().logError(e);
- } catch (SecurityException e) {
- VpePlugin.getPluginLog().logError(e);
- } catch (InstantiationException e) {
- VpePlugin.getPluginLog().logError(e);
- } catch (IllegalAccessException e) {
- VpePlugin.getPluginLog().logError(e);
- } catch (InvocationTargetException e) {
- VpePlugin.getPluginLog().logError(e);
- } catch (NoSuchMethodException e) {
- VpePlugin.getPluginLog().logError(e);
- }
- return null;
-
- }
-
- private void test(Node node) {
- }
-
- void refreshBundleValues() {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
- return;
- }
- try {
- if (bundle != null) {
- bundle.refresh();
- if (pageContext != null) {
- pageContext.refreshBundleValues();
- }
- }
- } finally {
- switcher.stopActiveEditor();
- }
- }
-
+// void refreshBundleValues() {
+// if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+// return;
+// }
+// try {
+// if (bundle != null) {
+// bundle.refresh();
+// if (pageContext != null) {
+// pageContext.refreshBundleValues();
+// }
+// }
+// } finally {
+// switcher.stopActiveEditor();
+// }
+// }
+//
void refreshTemplates() {
if (includeList.includesRefresh()) {
visualRefresh();
@@ -1973,8 +1521,7 @@
if (bundle != null) {
bundle.refresh();
if (pageContext != null) {
- if (!switcher
- .startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
+ if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_SOURCE)) {
return;
}
try {
@@ -1994,330 +1541,163 @@
public void structureChanged(XModelTreeEvent event) {
}
- private Node getSourceNodeAt(int offset) {
- if (sourceEditor != null && getModel() != null) {
- IndexedRegion node = getModel().getIndexedRegion(offset);
- if (node instanceof IDOMNode) {
+// private Node getSourceNodeAt(int offset) {
+// if (sourceEditor != null && getModel() != null) {
+// IndexedRegion node = getModel().getIndexedRegion(offset);
+// if (node instanceof IDOMNode) {
+// VpeElementMapping elementMapping = domMapping
+// .getNearElementMapping((IDOMNode) node);
+// if (elementMapping != null) {
+// if (node instanceof IDOMElement) {
+// IDOMElement element = (IDOMElement) node;
+//
+// if (offset < element.getEndStartOffset()) {
+// NamedNodeMap attrs = element.getAttributes();
+// if (attrs != null) {
+// for (int i = 0; i < attrs.getLength(); i++) {
+// if (attrs.item(i) instanceof AttrImpl) {
+// AttrImpl attr = (AttrImpl) attrs.item(i);
+// if (getSourceAttributeOffset(attr, offset) != -1) {
+// String[] atributeNames = elementMapping.getTemplate().getOutputAtributeNames();
+// if (atributeNames != null
+// && atributeNames.length > 0
+// && attr.getName().equalsIgnoreCase(atributeNames[0])) {
+// return attr;
+// }
+// }
+// }
+// }
+// }
+// }
+// }
+// }
+// }
+// if (node == null) {
+// node = getModel().getIndexedRegion(offset - 1);
+// }
+// if (node instanceof Node) {
+// return (Node) node;
+// }
+// }
+// return null;
+// }
+//
+// private int getSourceNodeOffset(Node node, int pos, boolean endFlag) {
+// if (node == null)
+// return 0;
+// int start = ((IndexedRegion) node).getStartOffset();
+// int end = ((IndexedRegion) node).getEndOffset();
+//
+// switch (node.getNodeType()) {
+// case Node.ATTRIBUTE_NODE:
+// if (node instanceof AttrImpl) {
+// return getSourceAttributeOffset((AttrImpl) node, pos);
+// }
+// case Node.TEXT_NODE:
+// if (pos < start) {
+// return 0;
+// } else if (pos > end) {
+// return end - start;
+// } else {
+// return pos - start;
+// }
+// case Node.COMMENT_NODE:
+// if (pos > end) {
+// pos = end;
+// }
+// int offset = pos - start - 4;
+// return offset < 0 ? 0 : offset;
+// case Node.ELEMENT_NODE:
+// ElementImpl element = (ElementImpl) node;
+// if (element.isContainer()) {
+// if (pos < element.getStartEndOffset()) {
+// return 0;
+// } else {
+// return 1;
+// }
+// } else {
+// return endFlag ? 1 : 0;
+// }
+// default:
+// return endFlag ? 1 : 0;
+// }
+// }
+//
+// private int getSourceAttributeOffset(AttrImpl attr, int pos) {
+// if (attr.getValueRegion() != null) {
+// int start = attr.getValueRegionStartOffset();
+// String value = attr.getValueRegionText();
+// int len = value.length();
+// if (pos >= start && pos <= start + len) {
+// int offset = pos - start;
+// if (len > 1 && value.charAt(0) == '"'
+// && value.charAt(len - 1) == '"') {
+// if (offset <= 0 || offset >= len) {
+// return -1;
+// }
+// offset--;
+// }
+// return offset;
+// }
+// }
+// return -1;
+// }
+//
+// private int getSourceNodeOffset1(Node node, int pos, boolean endFlag) {
+// if (node == null)
+// return 0;
+// int start = ((IndexedRegion) node).getStartOffset();
+// int end = ((IndexedRegion) node).getEndOffset();
+//
+// switch (node.getNodeType()) {
+// case Node.ATTRIBUTE_NODE:
+// if (node instanceof AttrImpl) {
+// AttrImpl attr = (AttrImpl) node;
+// start = attr.getValueRegionStartOffset();
+// end = start + attr.getValueRegion().getLength();
+// int ret = 0;
+// if (pos > end) {
+// ret = end - start;
+// } else {
+// ret = pos - start;
+// }
+// if (ret > 0 && attr.getValueRegionText().charAt(0) == '"') {
+// ret--;
+// }
+// return ret;
+// }
+// case Node.TEXT_NODE:
+// if (pos < start) {
+// return 0;
+// } else if (pos > end) {
+// return end - start;
+// } else {
+// return pos - start;
+// }
+// case Node.COMMENT_NODE:
+// if (pos > end) {
+// pos = end;
+// }
+// int offset = pos - start - 4;
+// return offset < 0 ? 0 : offset;
+// case Node.ELEMENT_NODE:
+// ElementImpl element = (ElementImpl) node;
+// if (element.isContainer()) {
+// if (pos < element.getStartEndOffset()) {
+// return 0;
+// } else if (pos < element.getStartEndOffset()) {
+// return 1;
+// } else if (pos == element.getStartEndOffset()) {
+// return 2;
+// }
+// } else {
+// return endFlag ? 1 : 0;
+// }
+// default:
+// return endFlag ? 1 : 0;
+// }
+// }
- VpeElementMapping elementMapping = domMapping
- .getNearElementMapping((IDOMNode) node);
-
- if (elementMapping != null) {
-
- if (node instanceof IDOMElement) {
- IDOMElement element = (IDOMElement) node;
-
- if (offset < element.getEndStartOffset()) {
- NamedNodeMap attrs = element.getAttributes();
- if (attrs != null) {
- for (int i = 0; i < attrs.getLength(); i++) {
- if (attrs.item(i) instanceof AttrImpl) {
- AttrImpl attr = (AttrImpl) attrs
- .item(i);
- if (getSourceAttributeOffset(attr,
- offset) != -1) {
-
- String[] atributeNames = elementMapping
- .getTemplate()
- .getOutputAtributeNames();
- if (atributeNames != null
- && atributeNames.length > 0
- && attr
- .getName()
- .equalsIgnoreCase(
- atributeNames[0])) {
- return attr;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- if (node == null) {
- node = getModel().getIndexedRegion(offset - 1);
- }
- if (node instanceof Node) {
- return (Node) node;
- }
- }
- return null;
- }
-
- private int getSourceNodeOffset(Node node, int pos, boolean endFlag) {
- if (node == null)
- return 0;
- int start = ((IndexedRegion) node).getStartOffset();
- int end = ((IndexedRegion) node).getEndOffset();
-
- switch (node.getNodeType()) {
- case Node.ATTRIBUTE_NODE:
- if (node instanceof AttrImpl) {
- return getSourceAttributeOffset((AttrImpl) node, pos);
- }
- case Node.TEXT_NODE:
- if (pos < start) {
- return 0;
- } else if (pos > end) {
- return end - start;
- } else {
- return pos - start;
- }
- case Node.COMMENT_NODE:
- if (pos > end) {
- pos = end;
- }
- int offset = pos - start - 4;
- return offset < 0 ? 0 : offset;
- case Node.ELEMENT_NODE:
- ElementImpl element = (ElementImpl) node;
- if (element.isContainer()) {
- if (pos < element.getStartEndOffset()) {
- return 0;
- } else {
- return 1;
- }
- } else {
- return endFlag ? 1 : 0;
- }
- default:
- return endFlag ? 1 : 0;
- }
- }
-
- private int getSourceAttributeOffset(AttrImpl attr, int pos) {
- if (attr.getValueRegion() != null) {
- int start = attr.getValueRegionStartOffset();
- String value = attr.getValueRegionText();
- int len = value.length();
- if (pos >= start && pos <= start + len) {
- int offset = pos - start;
- if (len > 1 && value.charAt(0) == '"'
- && value.charAt(len - 1) == '"') {
- if (offset <= 0 || offset >= len) {
- return -1;
- }
- offset--;
- }
- return offset;
- }
- }
- return -1;
- }
-
- private int getSourceNodeOffset1(Node node, int pos, boolean endFlag) {
- if (node == null)
- return 0;
- int start = ((IndexedRegion) node).getStartOffset();
- int end = ((IndexedRegion) node).getEndOffset();
-
- switch (node.getNodeType()) {
- case Node.ATTRIBUTE_NODE:
- if (node instanceof AttrImpl) {
- AttrImpl attr = (AttrImpl) node;
- start = attr.getValueRegionStartOffset();
- end = start + attr.getValueRegion().getLength();
- int ret = 0;
- if (pos > end) {
- ret = end - start;
- } else {
- ret = pos - start;
- }
- if (ret > 0 && attr.getValueRegionText().charAt(0) == '"') {
- ret--;
- }
- return ret;
- }
- case Node.TEXT_NODE:
- if (pos < start) {
- return 0;
- } else if (pos > end) {
- return end - start;
- } else {
- return pos - start;
- }
- case Node.COMMENT_NODE:
- if (pos > end) {
- pos = end;
- }
- int offset = pos - start - 4;
- return offset < 0 ? 0 : offset;
- case Node.ELEMENT_NODE:
- ElementImpl element = (ElementImpl) node;
- if (element.isContainer()) {
- if (pos < element.getStartEndOffset()) {
- return 0;
- } else if (pos < element.getStartEndOffset()) {
- return 1;
- } else if (pos == element.getStartEndOffset()) {
- return 2;
- }
- } else {
- return endFlag ? 1 : 0;
- }
- default:
- return endFlag ? 1 : 0;
- }
- }
-
- private void listenContextMenu(MenuManager manager, Point region,
- int type) {
- MenuManager mm = new MyMenuManager("From Palette", true); //$NON-NLS-1$
- manager.add(mm);
- manager.addMenuListener(new VpeMenuListener(mm, region, type));
- }
-
- class VpeMenuListener implements IMenuListener {
- private MenuManager manager;
- private Point region;
- private int type;
- private boolean loaded = false;
-
- public VpeMenuListener(MenuManager manager, Point region,
- int type) {
- this.manager = manager;
- this.region = region;
- this.type = type;
- }
-
- public void menuAboutToShow(IMenuManager m) {
- if (loaded)
- return;
- loaded = true;
- fillContextMenuFromPalette(manager, region , type);
- manager.getParent().update(true);
- }
- }
-
- private MenuManager fillContextMenuFromPalette(MenuManager manager,
- Point region, int type) {
- XModelObject model = ModelUtilities.getPreferenceModel().getByPath(
- "%Palette%"); //$NON-NLS-1$
-
- XModelObject[] folders = model.getChildren();
- for (int i = 0; i < folders.length; i++) {
- if ("yes".equals(folders[i].getAttributeValue("hidden")))continue; //$NON-NLS-1$ //$NON-NLS-2$
- MenuManager mm = new MenuManager(folders[i]
- .getAttributeValue("name")); //$NON-NLS-1$
- manager.add(mm);
- fillPaletteFolder(mm, region, folders[i], type);
- }
- return manager;
- }
-
- private void fillPaletteFolder(MenuManager menu, Point region,
- XModelObject folder, int type) {
- XModelObject[] groups = folder.getChildren();
- for (int i = 0; i < groups.length; i++) {
- if ("yes".equals(groups[i].getAttributeValue("hidden")))continue; //$NON-NLS-1$ //$NON-NLS-2$
- MenuManager mm = new MenuManager(groups[i]
- .getAttributeValue("name")); //$NON-NLS-1$
- menu.add(mm);
- fillPaletteGroup(mm, region, groups[i], type);
- }
- }
-
- private void fillPaletteGroup(MenuManager menu, Point region,
- XModelObject group, int type) {
- XModelObject[] items = group.getChildren();
- String endText;
-
- for (int i = 0; i < items.length; i++) {
- if ("yes".equals(items[i].getAttributeValue("hidden")))continue; //$NON-NLS-1$ //$NON-NLS-2$
- endText = items[i].getAttributeValue("end text"); //$NON-NLS-1$
-
- if (type == AROUND_MENU && (endText == null || "".equals(endText)))continue; //$NON-NLS-1$
- createInsertAction(menu, region, items[i], type);
- }
- }
-
- private void createInsertAction(MenuManager menu, Point region,
- XModelObject item, int type) {
-
- XModelObject parent = item.getParent();
- String uri = (parent == null) ? "" : parent.getAttributeValue(URIConstants.LIBRARY_URI); //$NON-NLS-1$
- String defaultPrefix = (parent == null) ? "" : parent.getAttributeValue(URIConstants.DEFAULT_PREFIX); //$NON-NLS-1$
- String tagName = item.getAttributeValue("name"); //$NON-NLS-1$
- String[] texts = new String[] { "<" + tagName + ">" }; //$NON-NLS-1$ //$NON-NLS-2$
- if (tagName.indexOf("taglib") < 0) //$NON-NLS-1$
- PaletteInsertHelper.applyPrefix(texts, sourceEditor, tagName, uri,
- defaultPrefix);
- tagName = texts[0];
-
- menu.add(new InsertAction(tagName, region, item, type));
- }
-
- class InsertAction extends Action {
- private XModelObject item;
- private int type;
- private Point region;
-
- public InsertAction(String title, Point region, XModelObject item,
- int type) {
- super(title);
- this.item = item;
- this.type = type;
- this.region = region;
- }
-
- public void run() {
-
- String tagName = item.getAttributeValue("name"); //$NON-NLS-1$
-
- XModelObject parent = item.getParent();
- String uri = (parent == null) ? "" : parent.getAttributeValue(URIConstants.LIBRARY_URI); //$NON-NLS-1$
- String libraryVersion = (parent == null) ? "" : parent.getAttributeValue(URIConstants.LIBRARY_VERSION); //$NON-NLS-1$
- String defaultPrefix = (parent == null) ? "" : parent.getAttributeValue(URIConstants.DEFAULT_PREFIX); //$NON-NLS-1$
-
- /*
- * Fixes https://jira.jboss.org/jira/browse/JBIDE-1363. Fixes
- * https://jira.jboss.org/jira/browse/JBIDE-2442. author:
- * dmaliarevich StructuredSelectionProvider from source view is used
- * instead of VpeSelectionProvider. It helps automatically update
- * selection range after taglib insertion.
- */
-
- String startText = "" + item.getAttributeValue("start text"); //$NON-NLS-1$ //$NON-NLS-2$
- String endText = "" + item.getAttributeValue("end text"); //$NON-NLS-1$ //$NON-NLS-2$
-
- //set source selection
- SelectionUtil.setSourceSelection(pageContext, region.x, region.y);
-
-
- /*
- * Gets source editor's selection provider with updated text
- * selection.
- */
- ISelectionProvider selProvider = getSourceEditor()
- .getSelectionProvider();
-
- Properties p = new Properties();
- p.setProperty("tag name", tagName); //$NON-NLS-1$
- p.setProperty("start text", startText); //$NON-NLS-1$
- p.setProperty("end text", endText); //$NON-NLS-1$
- p
- .setProperty(
- "automatically reformat tag body", "" + item.getAttributeValue("automatically reformat tag body")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- p.setProperty(URIConstants.LIBRARY_URI, uri);
- p.setProperty(URIConstants.LIBRARY_VERSION, libraryVersion);
- String addTaglib = item.getParent().getAttributeValue(
- TLDToPaletteHelper.ADD_TAGLIB);
- p.setProperty(URIConstants.DEFAULT_PREFIX, defaultPrefix);
- p.setProperty(PaletteInsertHelper.PROPOPERTY_ADD_TAGLIB, addTaglib);
- /*
- * Added by Dzmitry Sakovich Fix for JBIDE-1626
- */
- // if(((Node)region).getNodeType() == Node.ELEMENT_NODE)
- p.put("selectionProvider", selProvider); //$NON-NLS-1$
- PaletteInsertHelper.insertIntoEditor(sourceEditor.getTextViewer(),
- p);
-
- }
-
- }
-
class VpeSelectionProvider implements ISelectionProvider {
VpeSelection selection;
@@ -2333,19 +1713,16 @@
selection = new VpeSelection(offset, length);
}
- public void addSelectionChangedListener(
- ISelectionChangedListener listener) {
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
}
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ }
+
public ISelection getSelection() {
return selection;
}
- public void removeSelectionChangedListener(
- ISelectionChangedListener listener) {
-
- }
-
public void setSelection(ISelection selection) {
}
}
@@ -2410,32 +1787,6 @@
}
}
- class VpeAction extends Action {
- public Node actionNode;
-
- public VpeAction(String name, Node node) {
- super(name);
- this.actionNode = node;
- }
- }
-
- class VpeTextOperationAction extends Action {
- private String id;
- private Node region;
-
- public VpeTextOperationAction(String name, String id, Node region) {
- super(name);
- this.id = id;
- this.region = region;
- }
-
- public void run() {
- SelectionUtil.setSourceSelection(pageContext, region);
-// sourceEditor.getSelectionProvider().setSelection(new VpeSelection(region));
-// sourceEditor.getAction(id).run();
- }
- }
-
public void refreshExternalLinks() {
pageContext.getVisualBuilder().refreshExternalLinks();
}
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java 2008-12-20 13:13:41 UTC (rev 12789)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java 2008-12-20 13:29:41 UTC (rev 12790)
@@ -24,14 +24,12 @@
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction;
import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryActionHelper;
import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl;
-import org.eclipse.wst.xml.core.internal.document.NodeImpl;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.eclipse.wst.xml.ui.internal.actions.MenuBuilder;
import org.eclipse.wst.xml.ui.internal.util.XMLCommonResources;
@@ -53,10 +51,9 @@
protected static ITextNodeSplitter textNodeSplitter;
public static final String INSERT_AROUND_MENU = "Insert Around";
-
public static final String INSERT_BEFORE_MENU = "Insert Before";
-
public static final String INSERT_AFTER_MENU = "Insert After";
+ public static final String INSERT_TAG_MENU = "Insert Tag";
private ActionHelper actionHelper;
@@ -67,43 +64,36 @@
protected BaseActionManager(IStructuredModel model, ModelQuery modelQuery) {
this.model = model;
this.modelQuery = modelQuery;
- actionHelper = new ActionHelper((ModelQueryImpl) modelQuery);
+ this.actionHelper = new ActionHelper((ModelQueryImpl) modelQuery);
}
- abstract protected Action createAddAttributeAction(Element parent,
- CMAttributeDeclaration ad);
+ abstract protected Action createAddAttributeAction(Element parent, CMAttributeDeclaration ad);
abstract protected Action createAddCDataSectionAction(Node parent, int index);
- abstract protected Action createAddPCDataAction(Node parent,
- CMDataType dataType, int index);
+ abstract protected Action createAddPCDataAction(Node parent, CMDataType dataType, int index);
abstract protected Action createAddCommentAction(Node parent, int index);
abstract protected Action createAddDoctypeAction(Document parent, int index);
- abstract protected Action createAddElementAction(Node parent,
- CMElementDeclaration ed, int index, int type);
+ abstract protected Action createAddElementAction(Node parent, CMElementDeclaration ed, int index, int type);
- abstract protected Action createAddProcessingInstructionAction(Node parent,
- int index);
+ abstract protected Action createAddProcessingInstructionAction(Node parent, int index);
abstract protected Action createAddSchemaInfoAction(Element element);
- abstract protected Action createEditAttributeAction(Attr attribute,
- CMAttributeDeclaration ad);
+ abstract protected Action createEditAttributeAction(Attr attribute, CMAttributeDeclaration ad);
abstract protected Action createEditDoctypeAction(DocumentType doctype);
- abstract protected Action createEditProcessingInstructionAction(
- ProcessingInstruction pi);
+ abstract protected Action createEditProcessingInstructionAction(ProcessingInstruction pi);
abstract protected Action createEditSchemaInfoAction(Element element);
abstract protected Action createRenameAction(Node node);
- abstract protected Action createReplaceAction(Node parent, CMNode cmnode,
- int startIndex, int endIndex);
+ abstract protected Action createReplaceAction(Node parent, CMNode cmnode, int startIndex, int endIndex);
abstract protected Action createDeleteAction(List selection);
@@ -161,42 +151,19 @@
if (selection.size() > 0) {
implicitlySelectedNodeList = getSelectedNodes(selection, true);
- /*
- * MenuManager mm = new MenuManager("Insert Around "); mm.add(new
- * Action("Under construction") { public void run() {
- * } });
- *
- * menu.add(mm);
- */
+ if (selection.size() == 1) {
+ Node node = (Node) selection.get(0);
- // contribute delete actions
- // contributeDeleteActions(menu, implicitlySelectedNodeList, ic,
- // vc);
- }
+ // contribute add before actions
+ contributeAddSiblingActions(menu, node, ic, vc, true);
+ }
- if (selection.size() == 1) {
- Node node = (Node) selection.get(0);
-
- // contribute edit actions
- // contributeEditActions(menu, node);
-
- // contribute add child actions
- // contributeAddChildActions(menu, node, ic, vc);
-
- // contribute add before actions
- contributeAddSiblingActions(menu, node, ic, vc, true);
- }
-
- if (selection.size() > 0) {
// contribute replace actions
contributeReplaceActions(menu, implicitlySelectedNodeList, ic, vc);
+ } else if (selection.size() == 0) {
+ IMenuManager addTagMenu = new MyMenuManager(INSERT_TAG_MENU, true);
+ menu.add(addTagMenu);
}
-
- if (selection.size() == 0) {
- Document document = ((IDOMModel) model).getDocument();
- // contributeAddDocumentChildActions(menu, document, ic, vc);
- // contributeEditGrammarInformationActions(menu, document);
- }
}
public void contributeDeleteActionForVpe(IMenuManager menu, List selection) {
@@ -311,87 +278,82 @@
protected void contributeAddSiblingActions(IMenuManager menu, Node node,
int ic, int vc, boolean visible) {
- IMenuManager addAroundMenu = new MyMenuManager(INSERT_AROUND_MENU,
- visible); //$NON-NLS-1$
- IMenuManager addBeforeMenu = new MyMenuManager(INSERT_BEFORE_MENU,
- visible); //$NON-NLS-1$
- IMenuManager addAfterMenu = new MyMenuManager(INSERT_AFTER_MENU,
- visible); //$NON-NLS-1$
+ IMenuManager addAroundMenu = new MyMenuManager(INSERT_AROUND_MENU, visible);
+ IMenuManager addBeforeMenu = new MyMenuManager(INSERT_BEFORE_MENU, visible);
+ IMenuManager addAfterMenu = new MyMenuManager(INSERT_AFTER_MENU, visible);
menu.add(addAroundMenu);
menu.add(addBeforeMenu);
menu.add(addAfterMenu);
- Node parentNode = node.getParentNode();
- if (parentNode != null) {
- int index = getIndex(parentNode, node);
- if (textNodeSplitter != null)
- index = textNodeSplitter.getSplitIndex(index);
- if (parentNode.getNodeType() == Node.ELEMENT_NODE) {
- Element parentElement = (Element) parentNode;
- CMElementDeclaration parentED = modelQuery
- .getCMElementDeclaration(parentElement);
- if (parentED != null) {
- // 'Add Before...' and 'Add After...' actions
- //
-
- List modelQueryActionList = new ArrayList();
- modelQuery.getInsertActions(parentElement, parentED, index,
- ic, vc, modelQueryActionList);
- modelQueryActionList = actionHelper
- .modifyActionList(modelQueryActionList);
- addActionHelper(addAroundMenu, modelQueryActionList, 1);
-
- modelQueryActionList = new ArrayList();
- modelQuery.getInsertActions(parentElement, parentED, index,
- ic, vc, modelQueryActionList);
- addActionHelper(addBeforeMenu, modelQueryActionList, 2);
-
- modelQueryActionList = new ArrayList();
- ActionHelper helper = new ActionHelper(
- (ModelQueryImpl) modelQuery);
- if (textNodeSplitter != null)
- helper.getInsertActions(parentElement, parentED, index,
- ic, vc, modelQueryActionList);
- else
- helper.getInsertActions(parentElement, parentED,
- index + 1, ic, vc, modelQueryActionList);
- addActionHelper(addAfterMenu, modelQueryActionList, 3);
- }
- contributeUnconstrainedAddElementAction(addBeforeMenu,
- parentElement, parentED, index);
- contributeUnconstrainedAddElementAction(addAfterMenu,
- parentElement, parentED, index + 1);
- } else if (parentNode.getNodeType() == Node.DOCUMENT_NODE) {
- Document document = (Document) parentNode;
- CMDocument cmDocument = modelQuery
- .getCorrespondingCMDocument(parentNode);
- if (cmDocument != null) {
- // add possible root element insertions
- //
- List modelQueryActionList = new ArrayList();
- modelQuery.getInsertActions(document, cmDocument, index,
- ic, vc, modelQueryActionList);
- modelQueryActionList = actionHelper
- .modifyActionList(modelQueryActionList);
- addActionHelper(addAroundMenu, modelQueryActionList, 1);
-
- modelQueryActionList = new ArrayList();
- modelQuery.getInsertActions(document, cmDocument, index,
- ic, vc, modelQueryActionList);
- addActionHelper(addAfterMenu, modelQueryActionList, 2);
-
- modelQueryActionList = new ArrayList();
- modelQuery.getInsertActions(document, cmDocument,
- index + 1, ic, vc, modelQueryActionList);
- addActionHelper(addAfterMenu, modelQueryActionList, 3);
- }
-
- contributeUnconstrainedAddElementAction(addBeforeMenu,
- document, index);
- contributeUnconstrainedAddElementAction(addAfterMenu, document,
- index + 1);
- }
- }
+// Node parentNode = node.getParentNode();
+// if (parentNode != null) {
+// int index = getIndex(parentNode, node);
+// if (textNodeSplitter != null)
+// index = textNodeSplitter.getSplitIndex(index);
+// if (parentNode.getNodeType() == Node.ELEMENT_NODE) {
+// Element parentElement = (Element) parentNode;
+// CMElementDeclaration parentED = modelQuery
+// .getCMElementDeclaration(parentElement);
+// if (parentED != null) {
+// // 'Add Before...' and 'Add After...' actions
+// //
+//
+// List modelQueryActionList = new ArrayList();
+// modelQuery.getInsertActions(parentElement, parentED, index,
+// ic, vc, modelQueryActionList);
+// modelQueryActionList = actionHelper
+// .modifyActionList(modelQueryActionList);
+// addActionHelper(addAroundMenu, modelQueryActionList, 1);
+//
+// modelQueryActionList = new ArrayList();
+// modelQuery.getInsertActions(parentElement, parentED, index,
+// ic, vc, modelQueryActionList);
+// addActionHelper(addBeforeMenu, modelQueryActionList, 2);
+//
+// modelQueryActionList = new ArrayList();
+// ActionHelper helper = new ActionHelper(
+// (ModelQueryImpl) modelQuery);
+// if (textNodeSplitter != null)
+// helper.getInsertActions(parentElement, parentED, index,
+// ic, vc, modelQueryActionList);
+// else
+// helper.getInsertActions(parentElement, parentED,
+// index + 1, ic, vc, modelQueryActionList);
+// addActionHelper(addAfterMenu, modelQueryActionList, 3);
+// }
+// contributeUnconstrainedAddElementAction(addBeforeMenu,
+// parentElement, parentED, index);
+// contributeUnconstrainedAddElementAction(addAfterMenu,
+// parentElement, parentED, index + 1);
+// } else if (parentNode.getNodeType() == Node.DOCUMENT_NODE) {
+// Document document = (Document) parentNode;
+// CMDocument cmDocument = modelQuery
+// .getCorrespondingCMDocument(parentNode);
+// if (cmDocument != null) {
+// // add possible root element insertions
+// //
+// List modelQueryActionList = new ArrayList();
+// modelQuery.getInsertActions(document, cmDocument, index,
+// ic, vc, modelQueryActionList);
+// modelQueryActionList = actionHelper
+// .modifyActionList(modelQueryActionList);
+// addActionHelper(addAroundMenu, modelQueryActionList, 1);
+//
+// modelQueryActionList = new ArrayList();
+// modelQuery.getInsertActions(document, cmDocument, index,
+// ic, vc, modelQueryActionList);
+// addActionHelper(addAfterMenu, modelQueryActionList, 2);
+//
+// modelQueryActionList = new ArrayList();
+// modelQuery.getInsertActions(document, cmDocument,
+// index + 1, ic, vc, modelQueryActionList);
+// addActionHelper(addAfterMenu, modelQueryActionList, 3);
+// }
+//
+// contributeUnconstrainedAddElementAction(addBeforeMenu, document, index);
+// contributeUnconstrainedAddElementAction(addAfterMenu, document, index + 1);
+// }
+// }
}
protected void contributeAddDocumentChildActions(IMenuManager menu,
@@ -532,7 +494,8 @@
Element parentElement, CMElementDeclaration parentEd) {
if (isUnconstrainedActionAllowed()) {
if (parentEd == null
- || parentEd.getProperty("isInferred") == Boolean.TRUE || modelQuery.getEditMode() != ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) { //$NON-NLS-1$
+ || parentEd.getProperty("isInferred") == Boolean.TRUE
+ || modelQuery.getEditMode() != ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) { //$NON-NLS-1$
contributeAction(menu, createAddAttributeAction(parentElement,
null));
}
@@ -720,5 +683,4 @@
return actionList;
}
}
-
-}
+}
\ No newline at end of file
Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/MenuCreationHelper.java 2008-12-20 13:29:41 UTC (rev 12790)
@@ -0,0 +1,516 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.menu;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.xml.core.internal.document.NodeImpl;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.ui.objecteditor.ExtendedProperties;
+import org.jboss.tools.common.model.ui.objecteditor.ExtendedPropertiesWizard;
+import org.jboss.tools.common.model.ui.util.ModelUtilities;
+import org.jboss.tools.common.model.ui.views.palette.PaletteInsertHelper;
+import org.jboss.tools.common.model.util.ModelFeatureFactory;
+import org.jboss.tools.jst.web.tld.URIConstants;
+import org.jboss.tools.vpe.VpeDebug;
+import org.jboss.tools.vpe.VpePlugin;
+import org.jboss.tools.vpe.editor.TextNodeSplitterImpl;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.mapping.VpeDomMapping;
+import org.jboss.tools.vpe.editor.mapping.VpeElementMapping;
+import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
+import org.jboss.tools.vpe.editor.menu.BaseActionManager.MyMenuManager;
+import org.jboss.tools.vpe.editor.menu.action.InsertAction;
+import org.jboss.tools.vpe.editor.menu.action.VpeMenuListener;
+import org.jboss.tools.vpe.editor.menu.action.VpeTextOperationAction;
+import org.jboss.tools.vpe.editor.mozilla.MozillaEditor;
+import org.jboss.tools.vpe.editor.template.VpeAnyData;
+import org.jboss.tools.vpe.editor.template.VpeEditAnyDialog;
+import org.jboss.tools.vpe.editor.template.VpeHtmlTemplate;
+import org.jboss.tools.vpe.editor.template.VpeTemplate;
+import org.jboss.tools.vpe.editor.template.VpeTemplateManager;
+import org.jboss.tools.vpe.editor.util.Constants;
+import org.jboss.tools.vpe.editor.util.HTML;
+import org.jboss.tools.vpe.editor.util.NodesManagingUtil;
+import org.jboss.tools.vpe.editor.util.SelectionUtil;
+import org.jboss.tools.vpe.messages.VpeUIMessages;
+import org.jboss.tools.vpe.xulrunner.browser.util.DOMTreeDumper;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+
+/**
+ * This is helper class is used to create context menu for VPE.
+ *
+ * @author Igor Zhukov (izhukov(a)exadel.com)
+ */
+public class MenuCreationHelper {
+
+ public static final String CUT_ACTION = "Cut";
+ public static final String COPY_ACTION = "Copy";
+ public static final String PASTE_ACTION = "Paste";
+ public static final String DELETE_ACTION = "Delete";
+ public static final String TEST_ACTION = "Test";
+
+ private VpeDomMapping domMapping = null;
+ private VpePageContext pageContext = null;
+ private StructuredTextEditor sourceEditor = null;
+ private MozillaEditor visualEditor = null;
+
+ /**
+ * Constructor.
+ *
+ * @param domMapping VpeDomMapping
+ * @param pageContext VpePageContext
+ * @param sourceEditor StructuredTextEditor
+ * @param visualEditor MozillaEditor
+ */
+ public MenuCreationHelper(VpeDomMapping domMapping, VpePageContext pageContext,
+ StructuredTextEditor sourceEditor, MozillaEditor visualEditor) {
+ this.domMapping = domMapping;
+ this.pageContext = pageContext;
+ this.sourceEditor = sourceEditor;
+ this.visualEditor = visualEditor;
+ }
+
+ /**
+ * Create menu visual element for the node passed by parameter.
+ *
+ * @param node the Node object
+ * @param manager MenuManager object
+ */
+ public void createMenuForNode(Node node, MenuManager manager) {
+ createMenuForNode(node, manager, false);
+ }
+
+ /**
+ * Create menu visual element for the node passed by parameter.
+ *
+ * @param node the Node object
+ * @param manager MenuManager object
+ * @param topLevelFlag in case of "true" indicates if top level flag in relevant
+ */
+ public void createMenuForNode(Node node, MenuManager manager, boolean topLevelFlag) {
+ NodeActionManager.setTextNodeSplitter(null);
+ StructuredSelection structuredSelection = null;
+ if (node != null) {
+ if (node.getNodeType() == Node.ELEMENT_NODE) {
+ VpeElementMapping elementMapping = (VpeElementMapping) domMapping.getNodeMapping(node);
+ if (elementMapping != null && elementMapping.getTemplate() != null) {
+ manager.add(new VpeAction(
+ "<" + node.getNodeName() + "> Attributes", node) { //$NON-NLS-1$ //$NON-NLS-2$
+ public void run() {
+ showProperties(actionNode);
+ }
+ });
+
+ if (!topLevelFlag) {
+ manager.add(new VpeAction("Select This Tag", node) { //$NON-NLS-1$
+ public void run() {
+ SelectionUtil.setSourceSelection(pageContext, actionNode);
+ }
+ });
+ }
+ Node parent = node.getParentNode();
+ if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
+ MenuManager menuManager = new MenuManager("Parent Tag"); //$NON-NLS-1$
+ menuManager.setParent(manager);
+ manager.add(menuManager);
+ createMenuForNode(parent, menuManager);
+ }
+
+ manager.add(new Separator());
+ }
+ }
+ if (node.getNodeType() == Node.TEXT_NODE) {
+ Point range = sourceEditor.getTextViewer().getSelectedRange();
+ TextNodeSplitterImpl splitter = new TextNodeSplitterImpl(range, (Text) node);
+ NodeActionManager.setTextNodeSplitter(splitter);
+ }
+ structuredSelection = new StructuredSelection(node);
+ } else {
+ structuredSelection = new StructuredSelection();
+ }
+ NodeActionManager actionManager = new NodeActionManager(sourceEditor.getModel(), null);
+ if (actionManager != null) {
+ actionManager.fillContextMenuForVpe(manager, structuredSelection);
+ }
+
+ IContributionItem[] items = manager.getItems();
+ // fixed for JBIDE-3072
+ // add "insert arround",
+ for (int i = 0; i < items.length; i++) {
+ if (items[i] instanceof MenuManager) {
+ MenuManager mm = (MenuManager) items[i];
+ int type = 0;
+ Point region = null;
+ if (NodeActionManager.INSERT_AROUND_MENU.equals(mm.getMenuText())) {
+ type = ITextNodeSplitter.INSERT_AROUND;
+
+ // if node is text then allow to wrap only selected text
+ if (node.getNodeType() == Node.TEXT_NODE) {
+ region = SelectionUtil.getSourceSelectionRange(sourceEditor);
+ }
+ // else wrap all tag
+ else {
+ region = NodesManagingUtil.getNodeRange(node);
+ }
+
+ } else if (NodeActionManager.INSERT_BEFORE_MENU.equals(mm.getMenuText())) {
+ type = ITextNodeSplitter.INSERT_BEFORE;
+ region = new Point(NodesManagingUtil.getStartOffsetNode(node), 0);
+ } else if (NodeActionManager.INSERT_AFTER_MENU.equals(mm.getMenuText())) {
+ type = ITextNodeSplitter.INSERT_AFTER;
+ region = new Point(NodesManagingUtil.getEndOffsetNode(node), 0);
+ }
+ listenContextMenu(mm, region, type);
+ }
+ }
+
+ manager.add(new Separator());
+
+ if (node != null) {
+ if (node.getNodeType() == Node.ELEMENT_NODE) {
+ VpeElementMapping elementMapping = (VpeElementMapping) domMapping.getNodeMapping(node);
+ if (elementMapping != null
+ && elementMapping.getTemplate() != null
+ && elementMapping.getTemplate().getType() == VpeHtmlTemplate.TYPE_ANY) {
+ final VpeTemplate selectedTemplate = elementMapping.getTemplate();
+ manager.add(new VpeAction(NLS.bind(VpeUIMessages.SETUP_TEMPLATE_FOR_MENU,
+ "<" + node.getNodeName() + ">"), node) { //$NON-NLS-1$ //$NON-NLS-2$
+ public void run() {
+ boolean isCorrectNS = pageContext.isCorrectNS(actionNode);
+ VpeAnyData data = null;
+ if (isCorrectNS) {
+ data = selectedTemplate.getAnyData();
+ data.setUri(pageContext.getSourceTaglibUri(actionNode));
+ data.setName(actionNode.getNodeName());
+ }
+ data = editAnyData(sourceEditor, isCorrectNS,data);
+ if (data != null && data.isChanged())
+ VpeTemplateManager.getInstance().setAnyTemplate(data);
+ }
+ });
+
+ manager.add(new Separator());
+ }
+
+ manager.add(new VpeTextOperationAction(CUT_ACTION, ActionFactory.CUT.getId(), node, pageContext));
+ manager.add(new VpeTextOperationAction(COPY_ACTION, ActionFactory.COPY.getId(), node, pageContext));
+ manager.add(new VpeTextOperationAction(PASTE_ACTION, ActionFactory.PASTE.getId(), node, pageContext));
+ } else if (node.getNodeType() == Node.TEXT_NODE) {
+ manager.add(new Action(CUT_ACTION) {
+ public void run() {
+ sourceEditor.getAction(ActionFactory.CUT.getId()).run();
+ }
+ });
+ manager.add(new Action(COPY_ACTION) {
+ public void run() {
+ sourceEditor.getAction(ActionFactory.COPY.getId()).run();
+ }
+ });
+ manager.add(new Action(PASTE_ACTION) {
+ public void run() {
+ sourceEditor.getAction(ActionFactory.PASTE.getId()).run();
+ }
+ });
+ }
+
+ manager.add(new Separator());
+
+ if (actionManager != null && node != null) {
+ structuredSelection = node.getNodeType() == Node.ELEMENT_NODE ? new StructuredSelection(node): null;
+ actionManager.addContextMenuForVpe(manager, structuredSelection);
+ }
+
+ if (node.getNodeType() == Node.ELEMENT_NODE) {
+ boolean stripEnable = false;
+ NodeImpl impl = (NodeImpl) node;
+ if (impl.isContainer()) {
+ NodeList list = impl.getChildNodes();
+ if (list.getLength() > 0) {
+ if (list.getLength() == 1) {
+ Node child = list.item(0);
+ if (child.getNodeType() == Node.TEXT_NODE) {
+ if (Constants.EMPTY.equals(child.getNodeValue().trim()))
+ stripEnable = false;
+ else
+ stripEnable = true;
+ } else
+ stripEnable = true;
+ } else
+ stripEnable = true;
+ }
+ }
+ if (stripEnable)
+ manager.add(new VpeAction("Strip Tag", node) { //$NON-NLS-1$
+ public void run() {
+ Node parent = actionNode.getParentNode();
+ if (parent != null) {
+ int index = ((NodeImpl) actionNode).getIndex();
+ parent.removeChild(actionNode);
+ NodeList children = actionNode.getChildNodes();
+ int lengh = children.getLength();
+ Node child;
+ for (int i = 0; i < lengh; i++) {
+ child = children.item(0);
+ actionNode.removeChild(child);
+ insertNode(parent, child, index++);
+ }
+ }
+ }
+
+ private void insertNode(Node parent, Node node, int index) {
+ Node oldNode = null;
+ int childSize = parent.getChildNodes().getLength();
+ if (index <= (childSize - 1))
+ oldNode = parent.getChildNodes().item(index);
+ if (oldNode != null)
+ parent.insertBefore(node, oldNode);
+ else
+ parent.appendChild(node);
+ }
+ });
+ }
+ if (node.getNodeType() == Node.TEXT_NODE) {
+ manager.add(new Action(DELETE_ACTION) {
+ public void run() {
+ sourceEditor.getAction(ActionFactory.DELETE.getId()).run();
+ }
+ });
+ }
+ if (VpeDebug.VISUAL_CONTEXTMENU_DUMP_SOURCE) {
+ manager.add(new Action("Dump Source") { //$NON-NLS-1$
+ public void run() {
+ DOMTreeDumper dumper = new DOMTreeDumper(VpeDebug.VISUAL_DUMP_PRINT_HASH);
+ dumper.setIgnoredAttributes(VpeDebug.VISUAL_DUMP_IGNORED_ATTRIBUTES);
+ dumper.dumpToStream(System.out, visualEditor.getDomDocument());
+ }
+ });
+ }
+ if (VpeDebug.VISUAL_CONTEXTMENU_DUMP_SELECTED_ELEMENT) {
+ manager.add(new Action("Dump Selected Element") { //$NON-NLS-1$
+ public void run() {
+ VpeNodeMapping nodeMapping =
+ SelectionUtil.getNodeMappingBySourceSelection(sourceEditor, domMapping);
+ if (nodeMapping != null) {
+ DOMTreeDumper dumper = new DOMTreeDumper(VpeDebug.VISUAL_DUMP_PRINT_HASH);
+ dumper.setIgnoredAttributes(VpeDebug.VISUAL_DUMP_IGNORED_ATTRIBUTES);
+ dumper.dumpNode(nodeMapping.getVisualNode());
+ }
+ }
+ });
+ }
+ if (VpeDebug.VISUAL_CONTEXTMENU_DUMP_MAPPING) {
+ manager.add(new Action("Dump Mapping") { //$NON-NLS-1$
+ public void run() {
+ printMapping();
+ }
+ });
+ }
+ if (VpeDebug.VISUAL_CONTEXTMENU_TEST) {
+ manager.add(new VpeAction(TEST_ACTION, node) {
+ public void run() {
+ test(actionNode);
+ }
+ });
+ }
+ } else {
+ manager.add(new Action(PASTE_ACTION) {
+ public void run() {
+ sourceEditor.getAction(ActionFactory.PASTE.getId()).run();
+ }
+ });
+ }
+ }
+
+ /**
+ * Handle menu test operation.
+ * @param node the Node object
+ */
+ private void test(Node node) {}
+
+ /**
+ * Edit any data.
+ *
+ * @param sourceEditor StructuredTextEditor object
+ * @param isCorrectNS checks if NS is correct
+ * @param data VpeAnyData object
+ * @return VpeAnyData to be edited
+ */
+ private VpeAnyData editAnyData(StructuredTextEditor sourceEditor, boolean isCorrectNS, VpeAnyData data) {
+ Shell shell = sourceEditor.getEditorPart().getSite().getShell();
+ if (isCorrectNS) {
+ VpeEditAnyDialog editDialog = new VpeEditAnyDialog(shell, data);
+ editDialog.open();
+ } else {
+ MessageBox message = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
+ message.setMessage(VpeUIMessages.NAMESPACE_NOT_DEFINED);
+ message.open();
+ }
+ return data;
+ }
+
+ /**
+ * Method is used to show properties for the current node.
+ *
+ * @param node the Node object
+ */
+ private void showProperties(Node node) {
+ ExtendedProperties p = createExtendedProperties(node);
+ if (p != null) {
+ ExtendedPropertiesWizard.run(p);
+ }
+ }
+
+ /**
+ * Create extended properties list for the node passed by parameter.
+ *
+ * @param node the Node to be processed
+ * @return an extended properties
+ */
+ private ExtendedProperties createExtendedProperties(Node node) {
+ Class c = ModelFeatureFactory.getInstance().getFeatureClass(
+ "org.jboss.tools.jst.jsp.outline.VpeProperties"); //$NON-NLS-1$
+ try {
+ return (ExtendedProperties) c.getDeclaredConstructor(
+ new Class[] { Node.class }).newInstance(new Object[] { node });
+ } catch (IllegalArgumentException e) {
+ VpePlugin.getPluginLog().logError(e);
+ } catch (SecurityException e) {
+ VpePlugin.getPluginLog().logError(e);
+ } catch (InstantiationException e) {
+ VpePlugin.getPluginLog().logError(e);
+ } catch (IllegalAccessException e) {
+ VpePlugin.getPluginLog().logError(e);
+ } catch (InvocationTargetException e) {
+ VpePlugin.getPluginLog().logError(e);
+ } catch (NoSuchMethodException e) {
+ VpePlugin.getPluginLog().logError(e);
+ }
+ return null;
+ }
+
+ /**
+ * Method is used to print dump mapping.
+ */
+ private void printMapping() {
+ domMapping.printMapping();
+ }
+
+ /**
+ * Method is used to fill-in context menu with corresponding elements.
+ *
+ * @param manager the MenuManager object
+ * @param region the Point object
+ * @param type the type of menu element
+ */
+ private void listenContextMenu(MenuManager manager, final Point region, final int type) {
+ final MenuManager paletteMenuManager = new MyMenuManager("From Palette", true); //$NON-NLS-1$
+ manager.add(paletteMenuManager);
+ manager.addMenuListener(new VpeMenuListener(paletteMenuManager) {
+ @Override
+ protected void fillContextMenu() {
+ fillContextMenuFromPalette(paletteMenuManager, region, type);
+ }
+ });
+ }
+
+ /**
+ *
+ * @param manager
+ * @param region
+ * @param type
+ * @return
+ */
+ private MenuManager fillContextMenuFromPalette(MenuManager manager, Point region, int type) {
+ XModelObject model = ModelUtilities.getPreferenceModel().getByPath("%Palette%"); //$NON-NLS-1$
+
+ XModelObject[] folders = model.getChildren();
+ for (int i = 0; i < folders.length; i++) {
+ if (Constants.YES_STRING.equals(folders[i].getAttributeValue(HTML.VALUE_TYPE_HIDDEN))) {
+ continue;
+ }
+ MenuManager mm = new MenuManager(folders[i].getAttributeValue("name")); //$NON-NLS-1$
+ manager.add(mm);
+ fillPaletteFolder(mm, region, folders[i], type);
+ }
+ return manager;
+ }
+
+ private void fillPaletteFolder(MenuManager menu, Point region, XModelObject folder, int type) {
+ XModelObject[] groups = folder.getChildren();
+ for (int i = 0; i < groups.length; i++) {
+ if (Constants.YES_STRING.equals(groups[i].getAttributeValue(HTML.VALUE_TYPE_HIDDEN))) {
+ continue;
+ }
+ MenuManager mm = new MenuManager(groups[i].getAttributeValue("name")); //$NON-NLS-1$
+ menu.add(mm);
+ fillPaletteGroup(mm, region, groups[i], type);
+ }
+ }
+
+ private void fillPaletteGroup(MenuManager menu, Point region, XModelObject group, int type) {
+ XModelObject[] items = group.getChildren();
+ String endText;
+
+ for (int i = 0; i < items.length; i++) {
+ if (Constants.YES_STRING.equals(items[i].getAttributeValue(HTML.VALUE_TYPE_HIDDEN))) {
+ continue;
+ }
+ endText = items[i].getAttributeValue("end text"); //$NON-NLS-1$
+
+ if (type == ITextNodeSplitter.INSERT_AROUND &&
+ (endText == null || Constants.EMPTY.equals(endText))) {
+ continue;
+ }
+ createInsertAction(menu, region, items[i]);
+ }
+ }
+
+ private void createInsertAction(MenuManager menu, Point region, XModelObject item) {
+ XModelObject parent = item.getParent();
+ String uri = (parent == null) ? Constants.EMPTY : parent.getAttributeValue(URIConstants.LIBRARY_URI);
+ String defaultPrefix = (parent == null) ? Constants.EMPTY : parent.getAttributeValue(URIConstants.DEFAULT_PREFIX);
+ String tagName = item.getAttributeValue("name"); //$NON-NLS-1$
+ String[] texts = new String[] { "<" + tagName + ">" }; //$NON-NLS-1$ //$NON-NLS-2$
+ if (tagName.indexOf("taglib") < 0) { //$NON-NLS-1$
+ PaletteInsertHelper.applyPrefix(texts, sourceEditor, tagName, uri, defaultPrefix);
+ }
+ tagName = texts[0];
+
+ menu.add(new InsertAction(tagName, region, item, pageContext, sourceEditor));
+ }
+
+ /**
+ * For inner usage only. Was create just for simplicity.
+ */
+ class VpeAction extends Action {
+ public Node actionNode;
+
+ public VpeAction(String name, Node node) {
+ super(name);
+ this.actionNode = node;
+ }
+ }
+}
Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/InsertAction.java 2008-12-20 13:29:41 UTC (rev 12790)
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.menu.action;
+
+import java.util.Properties;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.ui.views.palette.PaletteInsertHelper;
+import org.jboss.tools.jst.web.tld.TLDToPaletteHelper;
+import org.jboss.tools.jst.web.tld.URIConstants;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.util.Constants;
+import org.jboss.tools.vpe.editor.util.SelectionUtil;
+
+/**
+ * Class is used to handle insert action.
+ *
+ * @author Igor Zhukov (izhukov(a)exadel.com)
+ */
+public class InsertAction extends Action {
+
+ private XModelObject item;
+ private Point region;
+
+ private VpePageContext pageContext = null;
+ private StructuredTextEditor sourceEditor = null;
+
+ /**
+ * Constructor.
+ *
+ * @param title the name of the action
+ * @param region the Point object
+ * @param item XModelObject object
+ * @param pageContext the VpePageContext element
+ * @param sourceEditor the StructuredTextEditor element
+ */
+ public InsertAction(String title, Point region, XModelObject item, VpePageContext pageContext,
+ StructuredTextEditor sourceEditor) {
+ super(title);
+ this.item = item;
+ this.region = region;
+ this.pageContext = pageContext;
+ this.sourceEditor = sourceEditor;
+ }
+
+ /**
+ * @see org.eclipse.jface.action.Action#run()
+ */
+ @Override
+ public void run() {
+ String tagName = item.getAttributeValue("name"); //$NON-NLS-1$
+
+ XModelObject parent = item.getParent();
+ String uri = (parent == null) ? Constants.EMPTY : parent.getAttributeValue(URIConstants.LIBRARY_URI);
+ String libraryVersion = (parent == null) ? Constants.EMPTY : parent.getAttributeValue(URIConstants.LIBRARY_VERSION);
+ String defaultPrefix = (parent == null) ? Constants.EMPTY : parent.getAttributeValue(URIConstants.DEFAULT_PREFIX);
+
+ /*
+ * Fixes https://jira.jboss.org/jira/browse/JBIDE-1363. Fixes
+ * https://jira.jboss.org/jira/browse/JBIDE-2442. author:
+ * dmaliarevich StructuredSelectionProvider from source view is used
+ * instead of VpeSelectionProvider. It helps automatically update
+ * selection range after taglib insertion.
+ */
+ String startText = Constants.EMPTY + item.getAttributeValue("start text"); //$NON-NLS-1$
+ String endText = Constants.EMPTY + item.getAttributeValue("end text"); //$NON-NLS-1$
+ if (region != null) {
+ //set source selection
+ SelectionUtil.setSourceSelection(pageContext, region.x, region.y);
+ }
+
+ // Gets source editor's selection provider with updated text selection.
+ ISelectionProvider selProvider = sourceEditor.getSelectionProvider();
+
+ Properties p = new Properties();
+ p.setProperty("tag name", tagName); //$NON-NLS-1$
+ p.setProperty("start text", startText); //$NON-NLS-1$
+ p.setProperty("end text", endText); //$NON-NLS-1$
+ p.setProperty("automatically reformat tag body", //$NON-NLS-1$
+ Constants.EMPTY + item.getAttributeValue("automatically reformat tag body")); //$NON-NLS-1$
+ p.setProperty(URIConstants.LIBRARY_URI, uri);
+ p.setProperty(URIConstants.LIBRARY_VERSION, libraryVersion);
+ String addTaglib = item.getParent().getAttributeValue(TLDToPaletteHelper.ADD_TAGLIB);
+ p.setProperty(URIConstants.DEFAULT_PREFIX, defaultPrefix);
+ p.setProperty(PaletteInsertHelper.PROPOPERTY_ADD_TAGLIB, addTaglib);
+ /*
+ * Added by Dzmitry Sakovich Fix for JBIDE-1626
+ */
+ // if(((Node)region).getNodeType() == Node.ELEMENT_NODE)
+ p.put("selectionProvider", selProvider); //$NON-NLS-1$
+ PaletteInsertHelper.insertIntoEditor(sourceEditor.getTextViewer(), p);
+ }
+}
\ No newline at end of file
Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeMenuListener.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeMenuListener.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeMenuListener.java 2008-12-20 13:29:41 UTC (rev 12790)
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.menu.action;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+
+/**
+ * This is listener class that should be implemented by childs.
+ *
+ * @author Igor Zhukov (izhukov(a)exadel.com)
+ */
+public abstract class VpeMenuListener implements IMenuListener {
+
+ private MenuManager manager = null;
+ private boolean loaded = false;
+
+ /**
+ * Constructor.
+ *
+ * @param manager MenuManager object
+ */
+ public VpeMenuListener(MenuManager manager) {
+ this.manager = manager;
+ }
+
+ public void menuAboutToShow(IMenuManager m) {
+ if (loaded) {
+ return;
+ }
+ loaded = true;
+ fillContextMenu();
+ manager.getParent().update(true);
+ }
+
+ protected abstract void fillContextMenu();
+}
\ No newline at end of file
Added: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeTextOperationAction.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeTextOperationAction.java (rev 0)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/action/VpeTextOperationAction.java 2008-12-20 13:29:41 UTC (rev 12790)
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.vpe.editor.menu.action;
+
+import org.eclipse.jface.action.Action;
+import org.jboss.tools.vpe.editor.context.VpePageContext;
+import org.jboss.tools.vpe.editor.util.SelectionUtil;
+import org.w3c.dom.Node;
+
+/**
+ * VpeTextOperationAction class.
+ *
+ * @author Igor Zhukov (izhukov(a)exadel.com)
+ */
+public class VpeTextOperationAction extends Action {
+
+ private String id = null;
+ private Node region = null;
+ private VpePageContext pageContext = null;
+
+ /**
+ * Constructor.
+ *
+ * @param name the name of action
+ * @param id action id
+ * @param region the Node object
+ * @param pageContext the VpePageContext object
+ */
+ public VpeTextOperationAction(String name, String id, Node region, VpePageContext pageContext) {
+ super(name);
+ this.id = id;
+ this.region = region;
+ this.pageContext = pageContext;
+ }
+
+ /**
+ * @see org.eclipse.jface.action.Action#run()
+ */
+ public void run() {
+ SelectionUtil.setSourceSelection(pageContext, region);
+ }
+}
\ No newline at end of file
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/Constants.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/Constants.java 2008-12-20 13:13:41 UTC (rev 12789)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/util/Constants.java 2008-12-20 13:29:41 UTC (rev 12790)
@@ -19,6 +19,7 @@
public static final String EMPTY = ""; //$NON-NLS-1$
public static final String WHITE_SPACE = " "; //$NON-NLS-1$
public static final String YES_STRING = "yes"; //$NON-NLS-1$
+ public static final String NO_STRING = "no"; //$NON-NLS-1$
public static final String JSP_FILE_EXTENSION = "jsp"; //$NON-NLS-1$
public static final String SEMICOLON = ";"; //$NON-NLS-1$
public static final String COLON = ":"; //$NON-NLS-1$
15 years, 4 months
JBoss Tools SVN: r12789 - trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu.
by jbosstools-commits@lists.jboss.org
Author: mareshkau
Date: 2008-12-20 08:13:41 -0500 (Sat, 20 Dec 2008)
New Revision: 12789
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-3428, replace with action was disabled
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java 2008-12-19 21:03:01 UTC (rev 12788)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/menu/BaseActionManager.java 2008-12-20 13:13:41 UTC (rev 12789)
@@ -410,13 +410,18 @@
protected void contributeReplaceActions(IMenuManager menu,
List selectedNodeList, int ic, int vc) {
// 'Replace With...' actions
- //
- IMenuManager replaceWithMenu = new MyMenuManager(XMLCommonResources
- .getInstance().getString("_UI_MENU_REPLACE_WITH")); //$NON-NLS-1$
- menu.add(replaceWithMenu);
+ //
+ //Fix for JBIDE-3428
+// IMenuManager replaceWithMenu = new MyMenuManager(XMLCommonResources
+// .getInstance().getString("_UI_MENU_REPLACE_WITH")); //$NON-NLS-1$
+// menu.add(replaceWithMenu);
if (modelQuery.getEditMode() == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT
&& selectedNodeList.size() > 0) {
+ IMenuManager replaceWithMenu = new MyMenuManager(XMLCommonResources
+ .getInstance().getString("_UI_MENU_REPLACE_WITH")); //$NON-NLS-1$
+ menu.add(replaceWithMenu);
+
Node node = (Node) selectedNodeList.get(0);
Node parentNode = node.getParentNode();
if (parentNode != null
15 years, 4 months
JBoss Tools SVN: r12788 - trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-12-19 16:03:01 -0500 (Fri, 19 Dec 2008)
New Revision: 12788
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
Log:
one fo the non-error errors for archives
Modified: trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
===================================================================
--- trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-12-19 20:30:23 UTC (rev 12787)
+++ trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-12-19 21:03:01 UTC (rev 12788)
@@ -212,10 +212,9 @@
}
public static boolean createFile(final IArchiveNode node, boolean sync) {
File f = getFile(node);
- boolean b = false;
- if( f != null ) {
- b = f.mkdirs();
- }
+ if( f == null ) return false;
+ if( f.exists() ) return true;
+ boolean b = f.mkdirs();
if( sync )
TrueZipUtil.sync();
return b;
15 years, 4 months
JBoss Tools SVN: r12787 - in branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en: modules and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2008-12-19 15:30:23 -0500 (Fri, 19 Dec 2008)
New Revision: 12787
Added:
branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master_output.xml
Modified:
branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master.xml
branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/modules/the_views.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-324
the latest docs that are done for release 3.0.0.CR1 from trunk are added to branch
master_output - the file to build guide versions with highlighted diff markers
Modified: branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master.xml 2008-12-19 20:28:10 UTC (rev 12786)
+++ branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master.xml 2008-12-19 20:30:23 UTC (rev 12787)
@@ -59,7 +59,7 @@
<year>2008</year>
<holder>JBoss, a division of Red Hat Inc.</holder>
</copyright>
- <releaseinfo> Version: 3.0.0.beta1</releaseinfo>
+ <releaseinfo> Version: 3.0.0.CR1</releaseinfo>
<abstract>
<title/>
Added: branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master_output.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master_output.xml (rev 0)
+++ branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/master_output.xml 2008-12-19 20:30:23 UTC (rev 12787)
@@ -0,0 +1,1288 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.docbook.org/xml/4.3/docbookx.dtd"
+
+
+[<!ENTITY introduction SYSTEM "modules/Introduction.xml">
+<!ENTITY jboss_jbpm_runtime_installation SYSTEM "modules/jboss_jbpm_runtime_installation.xml">
+<!ENTITY guided_tour_jboss_jbpmgpd SYSTEM "modules/guided_tour_jboss_jbpmgpd.xml">
+<!ENTITY the_views SYSTEM "modules/the_views.xml">
+<!ENTITY Test_Drive_Proc SYSTEM "modules/Test_Drive_Proc.xml">
+<!ENTITY The_JBoss_jBPM_Int_Mech SYSTEM "modules/The_JBoss_jBPM_Int_Mech.xml">
+<!ENTITY Quick_Howto_Guide SYSTEM "modules/Quick_Howto_Guide.xml">
+
+<!ENTITY seamlink "../../seam/html_single/index.html">
+<!ENTITY aslink "../../as/html_single/index.html">
+<!ENTITY esblink "../../esb_ref_guide/html_single/index.html">
+<!ENTITY gsglink "../../GettingStartedGuide/html_single/index.html">
+<!ENTITY hibernatelink "../../hibernatetools/html_single/index.html">
+<!ENTITY jbpmlink "../../jbpm/html_single/index.html">
+<!ENTITY jsflink "../../jsf/html_single/index.html">
+<!ENTITY jsfreflink "../../jsf_tools_ref_guide/html_single/index.html">
+<!ENTITY jsftutoriallink "../../jsf_tools_tutorial/html_single/index.html">
+<!ENTITY strutsreflink "../../struts_tools_ref_guide/html_single/index.html">
+<!ENTITY strutstutoriallink "../../struts_tools_tutorial/html_single/index.html">
+
+ ]><book xmlns:diffmk="http://diffmk.sf.net/ns/diff">
+ <bookinfo>
+ <title>jBPM Tools Reference Guide</title>
+
+ <author>
+ <firstname>Anatoly</firstname>
+ <surname>Fedosik</surname>
+ </author>
+ <author>
+ <firstname>Koen</firstname>
+ <surname>Aers</surname>
+ <email>koen.aers(a)jboss.com</email>
+ </author>
+ <author>
+ <firstname>Olga</firstname>
+ <surname>Chikvina</surname>
+ </author>
+ <author>
+ <firstname>Svetlana</firstname>
+ <surname>Mukhina</surname>
+ <email>smukhina(a)exadel.com</email>
+ </author>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Baeyens</surname>
+ <email>tom.baeyens(a)jboss.com</email>
+ </author>
+
+
+ <pubdate>April 2008</pubdate>
+ <copyright>
+ <year>2007</year>
+ <year>2008</year>
+ <holder>JBoss, a division of Red Hat Inc.</holder>
+ </copyright>
+ <releaseinfo><diffmk:wrapper diffmk:change="changed"> Version: 3.0.0.CR1</diffmk:wrapper></releaseinfo>
+
+<abstract>
+ <title></title>
+ <para>
+ <ulink url="http://download.jboss.org/jbosstools/nightly-docs/en/jbpm/pdf/JBPM_Refere...">PDF version</ulink>
+ </para>
+</abstract>
+
+ </bookinfo>
+
+ <toc></toc>
+
+<chapter id="Introduction" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jbpm/docs/reference/en/modules/Introduction.xml" xreflabel="Introduction">
+ <?dbhtml filename="TargetAudience.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>jBPM</keyword>
+ <keyword>Target</keyword>
+ <keyword>developers</keyword>
+ <keyword>Audience</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Introduction</title>
+ <para>All developers and process analysts who are beginning to use JBoss jBPM should read this
+ Getting Started guide. It will give them a jumpstart showing how to create a process definition.</para>
+ <section id="Preface">
+ <?dbhtml filename="Preface.html"?>
+ <title>Preface</title>
+ <para>This document introduces the use of the JBoss jBPM Graphical Process Designer (GPD) to
+ create workflow processes. It will help first time users with the following tasks :</para>
+ <itemizedlist>
+ <listitem>
+ <para>Install the JBoss jBPM GPD Eclipse plugin available from the JBoss jBPM download
+ area</para>
+ </listitem>
+ <listitem>
+ <para>Set up a Java project in Eclipse and prepare it to do test driven process
+ development</para>
+ </listitem>
+ <listitem>
+ <para>Using the creation wizard to create an empty process definition</para>
+ </listitem>
+ <listitem>
+ <para>Use the designer palette to draw the first processdefinition</para>
+ </listitem>
+ <listitem>
+ <para>Show how the xml processdefinition can be inspected as an xml file</para>
+ </listitem>
+ <listitem>
+ <para>Set up a Java project in Eclipse and prepare it to do test driven process
+ development</para>
+ </listitem>
+ <listitem>
+ <para>Write an example process test case</para>
+ </listitem>
+ </itemizedlist>
+ <para>If you have questions, please feel free to contact <ulink url="mailto:koen.aers@jboss.com">Koen Aers</ulink> or <ulink url="mailto:tom.baeyens@jboss.com">Tom Baeyens</ulink> for more
+ information.</para>
+ </section>
+
+ <section id="feature_list">
+
+ <title>Feature list</title>
+
+ <para> JBoss jBPM is a workflow that enables creating and automatization business processes. Look
+ at the list of features below to understand its main functionality.</para>
+ <table>
+ <title>Key Functionality for JBoss jBPM</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Feature</entry>
+ <entry>Benefit</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>
+ <link linkend="minimal_process_definition">jBDL support</link>
+ </entry>
+ <entry>Enables managing workflow processes as well as human tasks and interactions between
+ them. jBDL combines the best both Java and declarative process techniques.</entry>
+ </row>
+
+ <row>
+ <entry>
+ <link linkend="GuidedTourJBossjBPMGPD">Support of Graphical Process Designer (GPD)</link>
+ </entry>
+ <entry>Is used for simplifying declarative process development and visualizations of all
+ actions.</entry>
+ </row>
+
+ <row>
+ <entry>
+ <link linkend="CreatingjBPMProject">Project Creation wizard</link>
+ </entry>
+ <entry>Allows to create a new jBPM template project that already includes all advanced
+ artifacts and core jBPM libraries.</entry>
+ </row>
+
+ <row>
+ <entry>
+ <link linkend="minimal_process_definition">Rich palette of pre-build process nodes</link>
+ </entry>
+ <entry>Provides process-building functionality and gives opportunity even non-programmers to
+ develop processes.</entry>
+ </row>
+
+ <row>
+ <entry>
+ <link linkend="source_mode">Support of XML code view</link>
+ </entry>
+ <entry>Shows the corresponding XML that's generated automatically in the Source view
+ of the process definition editor when developing the process.</entry>
+ </row>
+
+ <row>
+ <entry>
+ <link linkend="the_properties_view">Properties view</link>
+ </entry>
+ <entry>Facilitates configuring and editing of all nodes properties.</entry>
+ </row>
+
+ <row>
+ <entry>Interaction with all of the J2EE based integration technologies including Web Services,
+ Java Messaging, J2EE Connectors, JBDC, EJBs.</entry>
+ <entry>Enables implementation, provides better functionality and flexibility.</entry>
+ </row>
+
+ <row>
+ <entry>Integration with jBoss Seam</entry>
+ <entry>Allows to write applications with complex workflows and provides easier interactions
+ between them.</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
+ <section>
+ <title>Other relevant resources on the topic</title>
+ <para>All JBoss Developer Studio/JBoss Tools documentation you can find <ulink url="http://docs.jboss.org/tools/2.1.0.GA/">here</ulink>.</para>
+ <para>The latest documentation builds are available <ulink url="http://download.jboss.org/jbosstools/nightly-docs/">here</ulink>.</para>
+ </section>
+
+</chapter>
+
+
+<chapter id="jboss_jbpm_runtime_installation" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jbpm/docs/reference/en/modules/jboss_jbpm_runtime_installation.xml" xreflabel="jboss_jbpm_runtime_installation">
+ <?dbhtml filename="jboss_jbpm_runtime_installation.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>jBPM</keyword>
+ <keyword>designer</keyword>
+ <keyword>process</keyword>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>jBPM runtime</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>JBoss jBPM Runtime Installation</title>
+ <para>The main purpose of this chapter is to let you know how to launch the <property moreinfo="none">JBoss
+ jBPM</property> (business process management).</para>
+ <para>The jBPM plugin (jBPM Designer) is already included in the <property moreinfo="none">JBoss Tools</property>.
+ To make it work, you should only download the jBPM runtime (<ulink url="http://sourceforge.net/project/showfiles.php?group_id=70542&package_i...">jbpm-jpdl-3.2.2</ulink> currently) and specify the directory where you extracted the runtime
+ either when you create a jBPM project or by using the jBPM preference pages.</para>
+
+ <note>
+ <title>Note:</title>
+ <para>Try to avoid using spaces in the names of installation folders. It can provoke problems in
+ some situations with Sun-based VMs.</para>
+ </note>
+
+ <para>Navigate to <emphasis>
+ <property moreinfo="none">Window > Preferences > JBoss jBPM > Runtime Locations</property>.
+ </emphasis> Here you can add, edit and remove JBoss jBPM installation locations. Click <emphasis>
+ <property moreinfo="none">Add</property>
+ </emphasis> button. In the dialog that appeared enter a name for a newly added jBPM runtime and
+ point to the correct location of this package on your harddrive. Click <emphasis>
+ <property moreinfo="none">OK</property>
+ </emphasis> then click <emphasis>
+ <property moreinfo="none">OK</property>
+ </emphasis> again.</para>
+
+ <figure float="0">
+ <title>Adding jBPM Location</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/runtime_installation/runtime_installation_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Now, when you have a runtime installed, we are going to demonstrate some powerful features of
+ the jBPM.</para>
+</chapter>
+
+
+<chapter id="GuidedTourJBossjBPMGPD" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jbpm/docs/reference/en/modules/guided_tour_jboss_jbpmgpd.xml" xreflabel="GuidedTourJBossjBPMGPD">
+ <?dbhtml filename="GuidedTourJBossjBPMGPD.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>jBPM</keyword>
+ <keyword>JBoss</keyword>
+ <keyword>Process</keyword>
+ <keyword>Definition</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>A Guided Tour of JBoss jBPM GPD</title>
+ <para>In this chapter we suggest a step-by-step walk-through of creating and configuring your
+ own simple process. Let's try to organize a new jBPM project.</para>
+ <para>A wizard for creating a jBPM project is included in the GPD plugin. We have opted to
+ create a project based on a template already containing a number of advanced artifacts that
+ we will ignore for this section. In the future we will elaborate this wizard and offer the
+ possibility to create an empty jBPM project as well as projects based on templates taken
+ from the jBPM tutorial.</para>
+ <section id="CreatingjBPMProject">
+ <?dbhtml filename="CreatingjBPMProject.html"?>
+ <title>Creating a jBPM Project</title>
+ <para>This section will show you how to use the Creation wizard for creating a new jBPM
+ project with already included source folders.</para>
+ <para>At first you should select <emphasis>
+ <property moreinfo="none">File >New Project...</property>
+ </emphasis> and then <emphasis>
+ <property moreinfo="none">JBoss jBPM > Process Project</property>
+ </emphasis> in the New Project dialog:</para>
+ <figure float="0">
+ <title>New Project Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> Clicking <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> brings us to the wizard page where it's necessary to specify the
+ name and location for the project. We choose, for example, <emphasis>
+ <property moreinfo="none">HellojBPM</property>
+ </emphasis> as the name and accept the default location. </para>
+ <figure float="0">
+ <title>Process Name and Location</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Thus, our project will be created in the workspace root directory by default. If you
+ want to change the directory for your future project, deselect <emphasis>
+ <property moreinfo="none">Use default location</property>
+ </emphasis> and click <emphasis>
+ <property moreinfo="none">Browse...</property>
+ </emphasis> button to set needed location or simply type it.</para>
+ <para>On the next screen you'll be prompted to select the core jBPM location that
+ we have defined in the previous chapter.</para>
+ <figure float="0">
+ <title>Core jBPM Location Specifying</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Clicking on <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> results in the project being generated. The wizard creates four source
+ folders: one for the processes (<emphasis>
+ <property moreinfo="none">src/main/jpdl</property>
+ </emphasis>), one for the java sources (<emphasis>
+ <property moreinfo="none">src/main/java</property>
+ </emphasis>), one for the unit tests (<emphasis>
+ <property moreinfo="none">src/test/java</property>
+ </emphasis>) and one for the resources such as the jbpm.properties and the
+ hibernate.properties files (<emphasis>
+ <property moreinfo="none">src/main/config</property>
+ </emphasis>). In addition a classpath container with all the core jBPM libraries is
+ added to the project</para>
+ <figure float="0">
+ <title>Layout of the Process Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Looking inside the different source folders will reveal a number of other artifacts
+ that were generated, but we will leave these untouched for the moment. Instead, we will
+ look at another wizard that enables us to create an empty process definition.</para>
+ </section>
+ <section id="creating_an_empty_process_definition">
+ <?dbhtml filename="creating_an_empty_process_definition.html"?>
+ <title>Creating an Empty Process Definition</title>
+ <para>Now when the project is set up, we can use a Creation wizard to create an empty
+ process definition. Bring up the <emphasis>
+ <property moreinfo="none">New</property>
+ </emphasis> wizard by clicking the <emphasis>
+ <property moreinfo="none">File > New > Other...</property>
+ </emphasis> menu item. The wizard opens on the <emphasis>
+ <property moreinfo="none">Select Wizard</property>
+ </emphasis> page.</para>
+ <figure float="0">
+ <title>The Select Wizard Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Selecting the <emphasis>
+ <property moreinfo="none">JBoss jBPM</property>
+ </emphasis> category, then the <emphasis>
+ <property moreinfo="none">Process Definition</property>
+ </emphasis> item and clicking on the <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> button brings us to the <emphasis>
+ <property moreinfo="none">Create Process Definition</property>
+ </emphasis> page.</para>
+ <figure float="0">
+ <title>The Create New Process Definion Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>We choose <emphasis>
+ <property moreinfo="none">hello</property>
+ </emphasis> as the name of the process archive file. Click on the <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button to end the wizard and open the process definition editor.</para>
+ <figure float="0">
+ <title>The Process Definition Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_6.png" scale="60"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>You can see in the Package Explorer that creating a process definition involves
+ creating a folder with the name of the process definition and populating this folder
+ with two .xml files : <emphasis>
+ <property moreinfo="none">gpd.xml</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">processdefinition.xml</property>. </emphasis></para>
+ <para>The <emphasis>
+ <property moreinfo="none">gpd.xml</property>
+ </emphasis> contains the graphical information used by the process definition editor.
+ The <emphasis>
+ <property moreinfo="none">processdefinition.xml</property>
+ </emphasis> file contains the actual process definition info without the graphical
+ rendering info. At present, the GPD assumes that these two files are siblings. More
+ sophisticated configuration will be supported later.</para>
+
+ <section id="minimal_process_definition">
+ <?dbhtml filename="minimal_process_definition.html"?>
+ <title>A Minimal Process Definition</title>
+ <para>Now we are ready to create a very simple process definition consisting of a begin
+ state, an intermediate state and an end state.</para>
+ <para>To make the configuration of actions much easier it's better to use the
+ jPDL perspective. It provides the tabbed Properties Editor which allows to configure
+ all the relevant properties of the current selected item. </para>
+
+ <section id="adding_the_nodes">
+ <?dbhtml filename="adding_the_nodes.html"?>
+ <title>Adding the Nodes</title>
+ <para>At first select respectively <emphasis>
+ <property moreinfo="none">Start</property>, </emphasis>
+ <emphasis>
+ <property moreinfo="none">State</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">End</property>
+ </emphasis> on the tools palette and click on the canvas to add these nodes to
+ the process definition. The result should look similar to this:</para>
+ <figure float="0">
+ <title>A Simple Process With Three Nodes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_7.png" scale="60"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="adding_transitions">
+ <?dbhtml filename="adding_transitions.html"?>
+ <title>Adding Transitions</title>
+ <para>Then, we will connect the nodes with transitions. To do that select the <emphasis>
+ <property moreinfo="none">Transition</property>
+ </emphasis> tool in the tools palette and click on the <emphasis>
+ <property moreinfo="none">Start</property>
+ </emphasis> node, then move to the <emphasis>
+ <property moreinfo="none">State</property>
+ </emphasis> node and click again to see the transition being drawn. Perform the
+ same steps to create a transition from the <emphasis>
+ <property moreinfo="none">State</property>
+ </emphasis> node to the <emphasis>
+ <property moreinfo="none">End</property>
+ </emphasis> node. The result will look like:</para>
+ <figure float="0">
+ <title>A Simple Process With Transitions</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/guided_tour_jboss_jbpmgpd/guided_tour_8.png" scale="60"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Now, when you've got background knowledge of simple project creation,
+ let's move to more advanced tools.</para>
+ </section>
+ </section>
+ </section>
+
+</chapter>
+
+
+<chapter id="the_views" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jbpm/docs/reference/en/modules/the_views.xml" xreflabel="the_views">
+ <?dbhtml filename="the_views.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>jBPM</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>The views</title>
+
+ <para>Here, it will be explained how to work with views and editors provided by JBDS.</para>
+ <para>The views are used for representation and navigation the resources you are working on at
+ the moment. One of the advantages of all the views is that all modifications made in the
+ currant-active file are immediately displayed in them. Let’s get acquainted more closely
+ with those that the <property moreinfo="none">jPDL perspective</property> provides. </para>
+
+ <figure float="0">
+ <title>The jPDL Perspective Views and Editors</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_0.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>As you can see in the picture above, the <property moreinfo="none">jPDL perspective</property><diffmk:wrapper diffmk:change="changed"> contains a
+ complete set of functionality that's necessary for working on the jBPM project.</diffmk:wrapper></para>
+
+ <section id="the_outline_view">
+ <?dbhtml filename="the_outline_view.html"?>
+ <title>The Outline View</title>
+ <para>To have a way to quickly see an outline of the process use the <emphasis>
+ <property moreinfo="none">Outline view</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> that is presented as the classical tree. If it is not visible select </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Window > Show view > Outline</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+
+ <figure float="0">
+ <title>The Overview View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="the_overview">
+ <?dbhtml filename="the_outline_view.html"?>
+ <title>The Overview</title>
+ <para>The main advantage of this view is that it gives visual representation of the whole
+ currant-developing process. Besides, the <emphasis>
+ <property moreinfo="none">Overview</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> comes as a scrollable thumbnail which enables a better navigation of the
+ process structure if it's too large.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>The Overview</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="the_properties_view">
+ <?dbhtml filename="the_properties_view.html"?>
+ <title>The Properties View</title>
+ <para> Here, we dwell on the JBDS <property moreinfo="none">Properties view</property>.</para>
+ <para>Notice if it's not visible you can access it by navigating <emphasis>
+ <property moreinfo="none">Window > Show view > Properties</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+ <para>The view shows the relevant properties of the selected item in the tabbed form. Every
+ item has its own set of properties, which can be directly editable in the Properties
+ view or by brining up the context menu.</para>
+
+ <figure float="0">
+ <title>The Properties View of selected Transition</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>For example, on the picture above the Properties view displays all the properties for
+ a selected transition. Its name has been changed to <emphasis>
+ <property moreinfo="none">to_auction</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis><diffmk:wrapper diffmk:change="changed"> We've done it directly in
+ active General tab of the view. The same way let's change the name for the
+ second transition to </diffmk:wrapper><emphasis>
+ <property moreinfo="none">to_end</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+ <para>If no one item is selected, the view represents the properties of the whole process
+ definition. </para>
+
+ <figure float="0">
+ <title>The Properties View of Process Definition</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In this case, it contains six tabs. The first one is the <emphasis>
+ <property moreinfo="none">General</property>.</emphasis><diffmk:wrapper diffmk:change="changed"> It allows to specify a process name and add
+ necessary description. To illustrate let's change the process definition name
+ to </diffmk:wrapper><emphasis>
+ <property moreinfo="none">jbay</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+ </section>
+
+ <section id="jbpm_gpd_editor">
+ <?dbhtml filename="direct_editing.html"?>
+ <title>The jBPM Graphical Process Designer editor.</title>
+ <para>The <property moreinfo="none">jBPM GPD editor</property><diffmk:wrapper diffmk:change="changed"> includes four modes: Diagram, Deployment,
+ Design and Source, which are available as switchable tabs at the bottom of the editor.
+ Let's dwell on each of them.</diffmk:wrapper></para>
+
+ <section id="the_diagram_mode">
+ <title>The Diagram mode</title>
+ <para> In this mode we define the process in the form of a diagram by means of tools
+ provided on the left-hand side of the jBPM GPD. </para>
+
+ <figure float="0">
+ <title>The Diagram mode</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Besides, some properties can be directly edited in the <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Diagram
+ mode</diffmk:wrapper></property><diffmk:wrapper diffmk:change="changed"> of the graphical editor. One example of this is the </diffmk:wrapper><emphasis>
+ <property moreinfo="none">name</property>
+ </emphasis> property of nodes. You can edit this directly by selecting the node of
+ which you want to change the name and then click once inside this node. This enables
+ an editor in the node. We change the name of the node to <emphasis>
+ <property moreinfo="none">auction</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+ </section>
+
+ <section id="source_mode">
+ <?dbhtml filename="the_source_view.html"?>
+ <title>The Source Mode</title>
+ <para>Now, that we have defined a simple process definition, we can have a look at the
+ XML that is being generated under the covers. To see this XML click on the Source
+ tab of the graphical process designer editor.</para>
+
+ <figure float="0">
+ <title>The Source Mode</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The <property moreinfo="none">Source mode</property><diffmk:wrapper diffmk:change="changed"> enables to easily manipulate our XML. That is
+ manually inserting and editing necessary elements or attributes. In addition, here
+ you can take advantage of content assist.</diffmk:wrapper></para>
+ </section>
+
+ <section id="design_mode">
+ <?dbhtml filename="the_design_view.html"?>
+ <title>The Design Mode</title>
+ <para>One more way to edit your file is to use <property moreinfo="none">Design mode</property>. You can
+ see it in the next picture:</para>
+ <figure float="0">
+ <title>The Design Mode</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>As you can see above, this mode looks like a table in the first column of which
+ the process structure is performed. Here, you can also insert, remove and edit
+ elements or attributes, moreover add comments and instructions. Their values can be
+ directly edited in the second column of the Design mode table.</para>
+ <para>For instance, let’s add a comment on the second transition. For that, you should
+ bring up the context menu for it and choose <emphasis>
+ <property moreinfo="none">Add Before > Comment</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+
+ <figure float="0">
+ <title>Adding a Comment</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Then, we can put the text <emphasis><diffmk:wrapper diffmk:change="changed">This transition leads to the end
+ state</diffmk:wrapper></emphasis> in the right column as its value.</para>
+
+ <figure float="0">
+ <title>Comment is added</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="deployment_mode">
+ <?dbhtml filename="the_deployment_view.html"?>
+ <title>The Deployment Mode</title>
+ <para>Finally, to adjust the deployment settings of the project you should switch on to
+ the tab that opens the <property moreinfo="none">Deployment mode</property><diffmk:wrapper diffmk:change="changed">. On the picture below
+ the </diffmk:wrapper><property moreinfo="none">Deployment mode</property><diffmk:wrapper diffmk:change="changed"> is performed with default settings. Here,
+ you can easily modify them or, if the settings won't match your needs, to
+ reset defaults. </diffmk:wrapper></para>
+ <figure float="0">
+ <title>The Deployment Mode</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/the_views/the_views_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The button <emphasis>
+ <property moreinfo="none">Test Connections</property>
+ </emphasis> is necessary to make sure whether all your settings are valid before
+ deploying the process.</para>
+ <para>Now that we've seen how to work with <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">jPDL
+ perspective</diffmk:wrapper></property>, let's pass on to the project testing.</para>
+ </section>
+ </section>
+</chapter>
+
+<chapter id="Test_Drive_Proc_Development" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jbpm/docs/reference/en/modules/Test_Drive_Proc.xml" xreflabel="Test_Drive_Proc_Development">
+ <?dbhtml filename="Test_Drive_Proc_Development.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>jBPM</keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Test Driven Process Development</title>
+
+ <para> One of the most important advantages of JBoss jBPM's lightweight approach to BPM
+ and workflow management is that developers can easily leverage their usual programming
+ skills and techniques. One of these well-known techniques is Unit Testing and Test Driven
+ Development. </para>
+ <para>In this chapter we will show how developers, making use of the JBoss jBPM GPD, can use a
+ technique we have baptized <property moreinfo="none">Test Driven Process Development</property> to create
+ process definitions and test their correctness. </para>
+
+ <para> When creating the <emphasis>
+ <property moreinfo="none">HellojBPM</property>
+ </emphasis> project the Project Creation wizard has already put in place all the library
+ requirements we need to start writing the jBPM unit tests. They are contained in the jBPM
+ Library container and the most important of them is the <emphasis>
+ <property moreinfo="none">.jar</property>
+ </emphasis> file containing the core jBPM classes. While working on the project you could
+ find them all in the <property moreinfo="none">Package Explorer</property>.</para>
+
+ <figure float="0">
+ <title>The jBPM Libraries</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>It must be noted that it is possible to change the location of the core jBPM installation
+ by changing the preference settings. More on this <link linkend="change_core_jbpm_inst">see
+ later</link> in this book.</para>
+
+ <para> With that extra knowledge on the project settings, you can create your first test. To do
+ this, we create the <emphasis>
+ <property moreinfo="none">com.jbay</property>
+ </emphasis> package in the <emphasis>
+ <property moreinfo="none">test/java</property>
+ </emphasis> source folder. Then we bring up the context menu on this package and select <emphasis>
+ <property moreinfo="none">New > Other...</property>
+ </emphasis></para>
+
+ <figure float="0">
+ <title>Call the JUnit Test Case Creation wizard</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para> And then <emphasis>
+ <property moreinfo="none">Java > JUnit > JUnit Test Case</property>
+ </emphasis> to call the specialized JUnite Test case creation wizard.</para>
+ <figure float="0">
+ <title>Call the JUnit Test Case Creation wizard</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The wizard looks as follows:</para>
+
+ <figure float="0">
+ <title>Create Test Dialog</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>By default JUnite 3 version of testing framework is selected. Of course, you can choose
+ new advanced JUnit 4 version. In this case you'll be prompted to add new JUnit
+ Library to your build path. To add it automatically just click on the appropriate link. In
+ the <emphasis>
+ <property moreinfo="none">Class under test</property>
+ </emphasis> section you can specify the class to test.</para>
+
+ <figure float="0">
+ <title>A First Test Scenario</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Then, we call the test class <emphasis>
+ <property moreinfo="none">HelloTest</property>
+ </emphasis> and press <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button to complete.</para>
+
+ <para> Next, we should write a simple test scenario as shown on the next figure. Let's
+ study the code of this test case. </para>
+
+ <figure float="0" id="hello_test">
+ <title>A First Test Scenario</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_6.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the first line of the method, a jBPM process archive object is created. We use a
+ constructor accepting the filename of the archive. In our case it is the <emphasis>
+ <property moreinfo="none">hello</property>
+ </emphasis> file we created earlier and which lives in the <emphasis>
+ <property moreinfo="none">src/main/jpdl</property>
+ </emphasis> folder of our project. After asserting that this object is really created, we
+ extract a process definition object from it. This object is fed to the constructor of a
+ process instance object. We have a process instance object, but this process is not yet
+ started, so we can safely assert that its root token still resides in the start node. After
+ signalling the token will move to the next state and the process will be in the <emphasis>
+ <property moreinfo="none">auction</property>
+ </emphasis> state. Finally another signal will end the process. </para>
+
+
+ <para> After writing this test we can check whether it works as expected by running it .</para>
+
+ <figure float="0">
+ <title>Running the Process Test</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_7.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>All went well as we have a green light:</para>
+
+ <figure float="0">
+ <title>Successful Test Run</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Test_Drive_Proc/test_driv_proc_8.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para> Of course, this simple scenario was not very interesting, but the purpose of it was to
+ show how you can reuse your development skills in a very straightforward way when doing
+ process development. To see how more interesting processes and process test
+ scenario's can be developed, we suggest you to read the <ulink url="http://docs.jboss.com/jbpm/v3/userguide/">JBoss jBPM User Guide</ulink> and to
+ study the API reference. You can find it in the jBPM download folder. (To get started we
+ downloaded jbpm-jpdl-3.2.2 in <link linkend="jboss_jbpm_runtime_installation">the second
+ chapter</link>. You should just remember where you extracted it.) All we've mentioned are in the 'javadoc- *' subfolders of the 'doc' folder.
+ Moreover, some more examples will be given later in this book.</para>
+
+</chapter>
+
+
+<chapter id="The_JBoss_jBPM_Int_Mech" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jbpm/docs/reference/en/modules/The_JBoss_jBPM_Int_Mech.xml" xreflabel="The_JBoss_jBPM_Int_Mech">
+ <?dbhtml filename="The_JBoss_jBPM_Int_Mech.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>jBPM</keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Actions : The JBoss jBPM Integration Mechanism</title>
+
+ <para> In this chapter we will show how to do software integration with <property moreinfo="none">JBoss
+ jBPM</property>. The standard mechanism to implement this is to wrap the functionality you
+ want to integrate in a class that implements the <emphasis>
+ <property moreinfo="none">ActionHandler</property>
+ </emphasis> interface. In order to demonstrate it let's specify Hello World action for our
+ process.</para>
+
+ <section>
+ <title>Creating a Hello World Action</title>
+
+ <para>Each Hello World process should integrate one or more Hello World actions, so this is
+ what we will be doing. We can integrate custom code at different points in the process
+ definition. To do this we have to specify an action handler, represented by an
+ implementation of the <emphasis>
+ <property moreinfo="none">ActionHandler</property>
+ </emphasis> interface, and attach this piece of code to a particular event. These events
+ are amongst others, going over a transition, leaving or entering nodes, after and before
+ signalling. </para>
+
+ <para> To make things a little bit more concrete, let's create a new class called <emphasis>
+ <property moreinfo="none">HelloActionHandler</property>.
+ </emphasis> For that firstly we'll create a new package <emphasis>
+ <property moreinfo="none">com.jbay.action</property>
+ </emphasis> in the <emphasis>
+ <property moreinfo="none">src/java/main</property>
+ </emphasis> folder of our project. Then, we should call New Class Creation wizard as
+ usual by right-clicking and navigating <emphasis>
+ <property moreinfo="none">New > Class</property>.
+ </emphasis> </para>
+
+ <figure float="0">
+ <title>Creating HelloActionHendler Class</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Notice that two first gaps have been filled automatically. Here, instead of <emphasis>
+ <property moreinfo="none">Package</property>
+ </emphasis> option <emphasis>
+ <property moreinfo="none">Enclose type</property>
+ </emphasis> option can be selected where a type in which to enclose a new class should
+ be specified.</para>
+
+ <para>In our case, we leave everything as it is, just type <emphasis>
+ <property moreinfo="none">HelloActionHandler</property>
+ </emphasis> as a name of new class and add <emphasis>
+ <property moreinfo="none">org.jbpm.graph.ActionHendler</property>
+ </emphasis> interface as it's shown in the picture above.</para>
+
+ <para>Thus, our <emphasis>
+ <property moreinfo="none">HelloActionHandler</property>
+ </emphasis> implements the <emphasis>
+ <property moreinfo="none">ActionHandler</property>
+ </emphasis> interface including the <emphasis>
+ <property moreinfo="none">execute</property>
+ </emphasis> method as shown in the next figure. Here, we add a variable named <emphasis>
+ <property moreinfo="none">greeting</property>
+ </emphasis> to the collection of process variables and put a message in it :
+ <emphasis>"Hello from ActionHandler"</emphasis>. </para>
+
+ <figure float="0">
+ <title>A Simple Hello Action</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_2.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Now, as we have <emphasis>
+ <property moreinfo="none">HelloActionHandler</property>
+ </emphasis> class defined, let's explore how we can handle it.</para>
+ </section>
+
+ <section>
+ <title>Integrating the Hello World Action</title>
+
+ <para>The main purpose of this chapter is to provide you with the steps associating our
+ Hello World action with a particular event and test the correctness of our actions as
+ well.</para>
+
+ <para> As good Testcity citizens we will first create a Unit Test that proves the behaviour
+ we want to achieve by adding the <emphasis>
+ <property moreinfo="none">ActionHandler</property>
+ </emphasis> to the process. So we implement another test.</para>
+
+ <para>At first, let's return to the
+ code we already saw <link linkend="hello_test">in the previous chapter</link> and add new test method <emphasis>
+ <property moreinfo="none">testActionHendler</property></emphasis> to it. </para>
+
+ <figure float="0">
+ <title>Create the Hello Action Test</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_3.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>We assert
+ that no variable called <emphasis>
+ <property moreinfo="none">greeting</property>
+ </emphasis> exist. Then we give the process a signal to move it to the auction state. We
+ want to associate the execution of the action with the event of going over the
+ transition from the start state to the auction state. So after the signal, the process
+ should be in the auction state as in the previous scenario. But moreover, the <emphasis>
+ <property moreinfo="none">greeting</property>
+ </emphasis> variable should exist and contain the string <emphasis>"Hello from
+ ActionHandler"</emphasis>. That's what we assert in the last lines of the test
+ method.</para>
+
+
+
+ <para> Running the tests now results in a failure. The point is that we did not associate
+ the action with any particular event in the process definition, so the process variable
+ did not get set. </para>
+
+ <figure float="0">
+ <title>Test Results Before Integration</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_4.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para> Let's do something about it and add an action to the first transition of our
+ sample process. To do this you can use the Actions tab in the Properties Editor that is
+ under the graphical canvas. Bring up the popup menu of the action element container and
+ chose New Action as it's shown on the figure below. The other way to add an action
+ to the transition is simply to use the dropdown menu that is available under the action
+ icon in the right upper corner of the Properties View.</para>
+
+ <figure float="0">
+ <title>Adding an Action to a Transition</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_5.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>After adding the action a tabbed view with three pages will appear.</para>
+
+ <figure float="0">
+ <title>Configuration Dialog for an Action</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_6.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The first of these three pages allows you to give the Action a name. The last page
+ contains some advanced attributes such as whether the Action is asynchronous. The
+ Details page is the most important. It allows to choose and configure the actual action
+ handler implementation. </para>
+
+ <figure float="0">
+ <title>The Details page of an Action Configuration Dialog</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_7.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>Clicking on the <emphasis>
+ <property moreinfo="none">Search...</property>
+ </emphasis> button brings us to a Choose Class dialog.</para>
+
+
+ <figure float="0">
+ <title>The Choose Action Handler Dialog</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para> We choose our previously created 'HelloActionHandler' class and
+ push the <property moreinfo="none">OK</property> button. After the selection of the action handler for
+ the action, we can run the test and observe it gives us a green light.</para>
+
+ <figure float="0">
+ <title>Test Results</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/The_JBoss_jBPM_Int_Mech/jboss_jbpm_int_mech_9.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Tere we are. The above objective has been achieved.</para>
+ </section>
+
+ <section>
+ <title> Integration Points</title>
+
+ <para> The different integration points in a process definition are thoroughly documented in
+ the <ulink url="http://docs.jboss.com/jbpm/v3/userguide/">JBoss jBPM User Guide</ulink>. Instance nodes can contain many action
+ elements. Each of these will appear in the Action element list of the Actions tab. But
+ each Action also has a properties view of itself. You can navigate to this view by
+ selecting the added Action in the outline view. </para>
+
+ </section>
+
+</chapter>
+
+
+<chapter id="Quick_Howto_Guide" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jbpm/docs/reference/en/modules/Quick_Howto_Guide.xml" xreflabel="Quick_Howto_Guide">
+ <?dbhtml filename="Quick_Howto_Guide.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>jBPM</keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ <keyword></keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Quick Howto Guide</title>
+
+ <para>This chapter contains additional information related to the <property moreinfo="none">JBoss
+ jBPM</property>.</para>
+
+ <section id="change_core_jbpm_inst">
+ <title>Change the Default Core jBPM Installation</title>
+
+ <para> You can change the default <property moreinfo="none">jBPM</property> installation by means of the
+ Eclipse preference mechanism. Open the Preferences dialog by selecting <emphasis>
+ <property moreinfo="none">Window > Preferences</property>
+ </emphasis> and select the <emphasis>
+ <property moreinfo="none">JBoss jBPM > Runtime Location</property>
+ </emphasis> category. Using this page you can add multiple <property moreinfo="none">jBPM</property>
+ installation locations and change the default one. The default installation is used for
+ the classpath settings when creating a new Process Project. Changing the preferences has
+ no influence on already created projects. Getting rid of a <property moreinfo="none">jBPM</property>
+ installation that's being referenced by a project however will cause the
+ classpath to contain errors. </para>
+
+
+ <figure float="0">
+ <title>The jBPM Preferences Page</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section>
+ <title>Configuring Task Nodes</title>
+
+ <para>Here, we'll examine how you can configure the Task nodes in jBPM jPDL GPD.</para>
+
+ <para> You can add Tasks to Task nodes and then configure them in a similar manner as the
+ Action configuration mechanism. Let's consider the process definition similar
+ to the previous one that contains three nodes: Start state, Task node and End state. The
+ <property moreinfo="none">Properties view</property> for selected Task node includes several tabs. </para>
+
+ <figure float="0">
+ <title>The Properties View of the selected Task Node</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_2.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>We should choose the Task tab and then bring up the context menu or click the button
+ in the top right corner of the view to add a Task to our Task node.</para>
+
+ <figure float="0">
+ <title>Adding a Task to the Task Node</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_3.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Every added Task has its own configuration possibilities. You can access them through
+ the <property moreinfo="none">Properties view</property> as well.</para>
+
+ <figure float="0">
+ <title>The Task properties</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_4.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The <property moreinfo="none">General page</property> is a place where you can specify the name of a
+ Task and its description. For instance, let it be <emphasis>
+ <property moreinfo="none">approve oder</property>
+ </emphasis> with appropriate description that you can see in the figure below.</para>
+
+ <figure float="0">
+ <title>The Task General Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_5.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Now, look at <property moreinfo="none">Details page</property>. First, you should specify the due date
+ that is a mandatory property for the Task. The due date is the date on which the task
+ should be accomplished. Here you can also set a Task priority as well as signalling,
+ notifying or blocking. The <emphasis>
+ <property moreinfo="none">Blocking</property>
+ </emphasis> attribute indicates that the process will not be able to continue if this
+ task is still unaccomplished. The <emphasis>
+ <property moreinfo="none">Generate Form...</property>
+ </emphasis> button is for creating a simple task form that can be rendered by the jBPM
+ console.</para>
+
+ <figure float="0">
+ <title>The Task Details Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_6.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>For our example, we specify the due date as 2 business days, choose the high priority
+ and also check the <emphasis>
+ <property moreinfo="none">Signalling</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">Notify</property>
+ </emphasis> attributes. It means that the Task should be accomplished in 2 business days
+ and the assignee will be notified by email when the task is assigned. To specify how the
+ Task should be assigned switch on to the <property moreinfo="none">Assignment page</property>.</para>
+
+ <figure float="0">
+ <title>The Task Assignment Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_7.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On the <property moreinfo="none">Reminder page</property> you can specify whether the assignee will be reminded of the task
+ that awaits him.</para>
+
+ <figure float="0">
+ <title>The Task Reminder Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_8.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In our case, the assignee will be reminded by email after two business hours and
+ continue to get reminding every business hour after that.</para>
+ <para>In the next figure you can see our configuring generated into XML.</para>
+ <figure float="0">
+ <title>The Task Reminder Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Quick_Howto_Guide/quick_howto_guide_9.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>We hope, our guide will help you to get started with the jPDL process language and jBPM
+ workflow on the whole. Besides, for additional information you are welcome on <ulink url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=217">our forum</ulink>.</para>
+
+</section>
+
+
+ <!-- TODO: drools used in this section is not available for eclipse .3.3 &AddBusinessProcess; -->
+</chapter></book>
Modified: branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/modules/the_views.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/modules/the_views.xml 2008-12-19 20:28:10 UTC (rev 12786)
+++ branches/jbosstools-3.0.0.CR1/jbpm/docs/reference/en/modules/the_views.xml 2008-12-19 20:30:23 UTC (rev 12787)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="the_views" xreflabel="the_views">
+<chapter id="the_views" xreflabel="the_views" role="updated">
<?dbhtml filename="the_views.html"?>
<chapterinfo>
<keywordset>
@@ -64,7 +64,7 @@
</figure>
</section>
- <section id="the_properties_view">
+ <section id="the_properties_view" role="updated">
<?dbhtml filename="the_properties_view.html"?>
<title>The Properties View</title>
<para> Here, we dwell on the JBDS <property>Properties view</property>.</para>
@@ -108,7 +108,7 @@
<property>jbay</property>. </emphasis></para>
</section>
- <section id="jbpm_gpd_editor">
+ <section id="jbpm_gpd_editor" role="updated">
<?dbhtml filename="direct_editing.html"?>
<title>The jBPM Graphical Process Designer editor.</title>
<para>The <property>jBPM GPD editor</property> includes four modes: Diagram, Deployment,
15 years, 4 months
JBoss Tools SVN: r12786 - in branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en: images/esb_project and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2008-12-19 15:28:10 -0500 (Fri, 19 Dec 2008)
New Revision: 12786
Added:
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/09_esb_runtime_new.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/13NewServerRuntimeEnv.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/14typeOfRuntime.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/15AddNew.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/16HelloworldProjects.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/17_Add_new_libraries.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/18_select_libraries.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/19_select_runtime.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/20_classpath_container.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master_output.xml
Modified:
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/01_create_esb_project.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/02_create_esb_project.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/03_create_esb_project.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/04_create_esb_project.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/05_esb_project_example.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/06_esb_project_example.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/07_esb_project_example.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/08_esb_project_deploy.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/10_esb_runtime.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/11_esb_runtime_new.png
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master.xml
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/esb_support.xml
branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/introduction.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-324
the latest docs that are done for release 3.0.0.CR1 from trunk are added to branch
master_output - the file to build guide versions with highlighted diff markers
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/01_create_esb_project.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/02_create_esb_project.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/03_create_esb_project.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/04_create_esb_project.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/05_esb_project_example.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/06_esb_project_example.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/07_esb_project_example.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/08_esb_project_deploy.png
===================================================================
(Binary files differ)
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/09_esb_runtime_new.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/09_esb_runtime_new.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/10_esb_runtime.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/11_esb_runtime_new.png
===================================================================
(Binary files differ)
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/13NewServerRuntimeEnv.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/13NewServerRuntimeEnv.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/14typeOfRuntime.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/14typeOfRuntime.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/15AddNew.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/15AddNew.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/16HelloworldProjects.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/16HelloworldProjects.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/17_Add_new_libraries.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/17_Add_new_libraries.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/18_select_libraries.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/18_select_libraries.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/19_select_runtime.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/19_select_runtime.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/20_classpath_container.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/images/esb_project/20_classpath_container.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master.xml 2008-12-19 20:24:04 UTC (rev 12785)
+++ branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master.xml 2008-12-19 20:28:10 UTC (rev 12786)
@@ -18,7 +18,7 @@
<!ENTITY strutsreflink "../../struts_tools_ref_guide/html_single/index.html">
<!ENTITY strutstutoriallink "../../struts_tools_tutorial/html_single/index.html">
-]>
+]>
<book>
<bookinfo>
@@ -33,7 +33,7 @@
<holder>JBoss, a division of Red Hat Inc.</holder>
</copyright>
<releaseinfo>
- Version: 3.0.0.beta1
+ Version: 3.0.0.CR1
</releaseinfo>
<abstract>
@@ -47,7 +47,7 @@
<toc/>
&introduction;
- &esb_support;
+ &esb_support;
&esb_editor;
</book>
\ No newline at end of file
Added: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master_output.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master_output.xml (rev 0)
+++ branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/master_output.xml 2008-12-19 20:28:10 UTC (rev 12786)
@@ -0,0 +1,798 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.docbook.org/xml/4.3/docbookx.dtd"
+
+[<!ENTITY introduction SYSTEM "modules/introduction.xml">
+<!ENTITY esb_support SYSTEM "modules/esb_support.xml">
+<!ENTITY esb_editor SYSTEM "modules/esb_editor.xml">
+
+<!ENTITY seamlink "../../seam/html_single/index.html">
+<!ENTITY aslink "../../as/html_single/index.html">
+<!ENTITY esblink "../../esb_ref_guide/html_single/index.html">
+<!ENTITY gsglink "../../GettingStartedGuide/html_single/index.html">
+<!ENTITY hibernatelink "../../hibernatetools/html_single/index.html">
+<!ENTITY jbpmlink "../../jbpm/html_single/index.html">
+<!ENTITY jsflink "../../jsf/html_single/index.html">
+<!ENTITY jsfreflink "../../jsf_tools_ref_guide/html_single/index.html">
+<!ENTITY jsftutoriallink "../../jsf_tools_tutorial/html_single/index.html">
+<!ENTITY strutsreflink "../../struts_tools_ref_guide/html_single/index.html">
+<!ENTITY strutstutoriallink "../../struts_tools_tutorial/html_single/index.html">
+
+]><book xmlns:diffmk="http://diffmk.sf.net/ns/diff">
+
+ <bookinfo>
+ <title>ESB Tools Reference Guide</title>
+ <author><firstname>Svetlana</firstname><surname>Mukhina</surname><email>smukhina(a)exadel.com</email></author>
+ <author><firstname>Tatyana</firstname><surname>Romanovich</surname></author>
+
+ <pubdate>April 2008</pubdate>
+ <copyright>
+ <year>2007</year>
+ <year>2008</year>
+ <holder>JBoss, a division of Red Hat Inc.</holder>
+ </copyright>
+ <releaseinfo><diffmk:wrapper diffmk:change="changed">
+ Version: 3.0.0.CR1
+ </diffmk:wrapper></releaseinfo>
+
+<abstract>
+ <title></title>
+ <para>
+ <ulink url="http://download.jboss.org/jbosstools/nightly-docs/en/esb_ref_guide/pdf/ES...">PDF version</ulink>
+ </para>
+</abstract>
+
+</bookinfo>
+ <toc></toc>
+
+
+<chapter id="introduction" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/esb/docs/esb_ref_guide/en/modules/introduction.xml">
+ <?dbhtml filename="introduction.html"?>
+
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Java</keyword>
+ <keyword>JBoss</keyword>
+ <keyword>JBoss Tools</keyword>
+ <keyword>JBDS</keyword>
+ <keyword>ESB</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Introduction</title>
+
+ <section>
+
+ <title>What is ESB?</title>
+
+ <para><diffmk:wrapper diffmk:change="changed">ESB (Enterprise Service Bus) - an abstraction layer on top of implementation of an
+ enterprise messaging system that provides the features Service Oriented
+ Architectures may be implemented with.</diffmk:wrapper></para>
+ <para><diffmk:wrapper diffmk:change="changed">If you want to develop applications using ESB technology JBoss ESB also meets your
+ needs. The JBoss Tools provide ESB editor and all necessary wizards for creating an ESB
+ file.</diffmk:wrapper></para>
+ <para>In this guide we provide you with the information on ESB Editor which allows you to
+ develop ESB file much faster and with far fewer errors so sparing your time.</para>
+
+ </section>
+
+ <section>
+ <title>Other relevant resources on the topic</title>
+
+ <para>You can find a set of benefits and other extra information on:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.org/jbossesb">JBoss ESB</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://wiki.jboss.org/wiki/JBossESB">JBoss Wiki</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.org/jbossesb/docs/index.html">JBoss ESB
+ Documentation Library</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The latest <property moreinfo="none">JBoss Tools/JBoss Developer Studio</property> documentation
+ builds are available <ulink url="http://download.jboss.org/jbosstools/nightly-docs/">here</ulink>.</para>
+
+ </section>
+</chapter>
+
+
+<chapter id="esb_support" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/esb/docs/esb_ref_guide/en/modules/esb_support.xml">
+ <?dbhtml filename="esb_support.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>ESB</keyword>
+ <keyword>Java</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>ESB Support</title>
+
+ <para>In this section we will focus on all concepts that <property moreinfo="none">JBoss Tools</property><diffmk:wrapper diffmk:change="changed">
+ integrate for working with JBoss ESB.</diffmk:wrapper></para>
+
+ <section>
+ <title>ESB Tools Installation</title>
+
+ <para>This chapter will provide you with the information on how to install
+ JBoss ESB plugin into Eclipse.</para>
+
+ <para>ESB Tools come as one module of JBoss Tools project. Since ESB Tools have a
+ dependence on other JBoss Tools modules we recommend you to install a bundle
+ of all <ulink url="http://labs.jboss.com/tools/download/index.html">JBoss
+ Tools plug-ins</ulink><diffmk:wrapper diffmk:change="changed">. You can find all necessary installation instructions on JBoss Wiki in the </diffmk:wrapper><ulink url="http://labs.jboss.com/wiki/InstallingJBossTools">InstallingJBossTools</ulink> section.</para>
+ </section>
+
+ <section diffmk:change="added">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Creating a ESB Project</diffmk:wrapper></title>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">In this chapter we suggest a step-by-step walk-through of creating a new
+ ESB project. Let's try to create a new JBoss ESB project.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">We will show you how to use the ESB Project Creation wizard for creating a new ESB project and setting basic ESB classpath.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">File >New > Project...</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> in the main menu bar or context menu for selected project and
+ then </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">ESB > ESB Project</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> in the dialog opened:</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select a Wizard dialog</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/01_create_esb_project.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added"> Clicking </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Next</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> brings you to the JBoss ESB Project wizard page where a project name, ESB version and target JBoss Runtime are to be specified. Specify, for example, </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">helloworld</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> as a Project name and accept the default ESB version.</diffmk:wrapper></para>
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss ESB Project wizard</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/02_create_esb_project.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added"> Clicking </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Next</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> brings you to the ESB facet installation page where you can
+ specify Java Source Directory and ESB Content Directory. ESB Content Directory is a folder that contains the most of
+ artifacts that an ESB archive needs. You also can configure ESB libraries to the project by selecting a ESB runtime using one of the options:,
+ </diffmk:wrapper></para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">1. Use </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Server Supplied ESB Runtime</diffmk:wrapper></property>
+ </emphasis>
+
+ </para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added"> 2. Select a ESB runtime from the JBoss ESB runtime list predefined in the preferences
+ </diffmk:wrapper></para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">If you choose the first option, make sure that the project has the Target JBoss Runtime set and this runtime has a ESB runtime installed.
+ </diffmk:wrapper></para>
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Install ESB facet step</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/03_create_esb_project.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Click </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Finish</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> and a ESB project with the default </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">jboss-esb.xml</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">
+ will be created. </diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">The generated ESB project structure</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/04_create_esb_project.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section diffmk:change="added" id="ESB_project_wizard" xreflabel="here">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Creating ESB Project using JBoss Tools Project Examples Wizard</diffmk:wrapper></title>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss Tools provides a Project Example wizard that is an easy way for users to create some kinds of projects to be used as examples with some predefined structure. Let's start
+ creating a ESB project using this wizard.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Before creating a ESB project example create JBoss Runtime with name </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">
+ JBoss 4.2 Runtime</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">, it will be used by your ESB project example. </diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">File >New > Others </diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> , in the main menu bar or context menu for selected project and
+ then </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss Tools > Project Examples</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> in the New dialog:</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select a wizard - Project Examples</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/05_esb_project_example.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added"> Clicking </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Next</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> brings you to the wizard page where you can select a ESB project example from the example list.
+ Every ESB example has two projects, one is a ESB project and another is a Java project used to test the ESB project.</diffmk:wrapper></para>
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss Tools ESB Project Examples</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/06_esb_project_example.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss ESB HelloWorld Example</diffmk:wrapper></property> </emphasis><diffmk:wrapper diffmk:change="added"> ESB and Client project, and then click
+ </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Finish</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">, then you will get two projects created. </diffmk:wrapper></para>
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss ESB Project Examples: helloworld and helloworld_testclient</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/07_esb_project_example.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added"> Deploy the HelloWorld ESB project and run a test class in the client Java project to see the test result in the Console view.</diffmk:wrapper></para>
+ </section>
+
+ <section diffmk:change="added">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Deploying a ESB Project</diffmk:wrapper></title>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">In this chapter youwill see how to deploy a ESB project using the WTP deployment framework.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Before deploying the project, open the JBoss Server View by selecting </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Window > Show View > Other >
+ Server > JBoss Server View</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">,
+ create a JBoss Server in the Server view and start it, and then right click the created JBoss server,
+ select </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"> </property><diffmk:wrapper diffmk:change="added"> Add and Remove Projects</diffmk:wrapper></emphasis><diffmk:wrapper diffmk:change="added">,
+ and add the ESB projects you want to deploy from the left side to the right side in the opened dialog. </diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Add and Remove Projects</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/08_esb_project_deploy.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Click </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Finish</diffmk:wrapper></property> </emphasis><diffmk:wrapper diffmk:change="added"> to add the project to the server.
+ You also can drag the ESB project from the Project View to the server.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss Server View</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/09_esb_runtime_new.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Thus, you have just added the ESB project to the JBoss server module list. Right click the JBoss Server and select </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Publish</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> to publish the project on the server.
+ You can check the deploying result in the Console view.</diffmk:wrapper></para>
+
+ </section>
+
+ <section>
+ <title>Creating a ESB File</title>
+ <para>In this chapter we suggest a step-by-step walk-through of creating your own
+ simple file. Let's try to organize a new ESB file.</para>
+
+ <para>We will show you how to use the Creation wizard for creating a new ESB file.</para>
+
+ <para>At first you should open any project. Select <emphasis>
+ <property moreinfo="none">File >New > Other...</property>
+ </emphasis> in the main menu bar or context menu for selected project and
+ then <emphasis>
+ <property moreinfo="none">ESB > ESB File</property>
+ </emphasis> in the New dialog:</para>
+
+ <figure float="0">
+ <title><diffmk:wrapper diffmk:change="changed">Select a wizard - ESB File</diffmk:wrapper></title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_support/01_create_esb.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para> Clicking <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> brings you to the wizard page where a folder, a name and a version for the file should be specified. Choose, for example, </diffmk:wrapper><emphasis>
+ <property moreinfo="none">jboss-esb.xml</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> as the name and accept the selected projects folder and the default
+ version.</diffmk:wrapper></para>
+ <figure float="0">
+ <title><diffmk:wrapper diffmk:change="changed">Folder, Name and Version for ESB file</diffmk:wrapper></title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_support/02_create_esb.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">Thus, your file will be created in the selected projects folder by default. If
+ you want to change the folder for your future file click </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Browse...</property>
+ </emphasis> button to set needed folder or simply type it.</para>
+
+ <para>Clicking on <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> results in the file being generated. The wizard creates one xml
+ file.</para>
+
+ </section>
+
+ <section diffmk:change="added">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Configuring ESB Runtime in Preferences</diffmk:wrapper></title>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">In this chapter you will know how to predefine a JBoss ESB runtime on the Preferences page.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">You may already know, there are two ways to set JBoss ESB runtime when creating a ESB project,
+ one is to use the project target JBoss runtime, and another is to select a JBoss ESB runtime predefined in JBoss Tools preferences.
+ Let's configure it.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Window >Preferences > JBoss Tools > JBoss ESB Runtime</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added">, to open the JBoss ESB Runtime Preferences page where you can add, remove and Edit a JBoss ESB runtime.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss ESB Runtimes</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/10_esb_runtime.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added"> Select </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Add</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> to open a dialog where you can specify the JBoss ESB runtime location, name and version number.
+ You also can customize the libraries of the runtime by checking the </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Customize JBoss ESB Runtime jars</diffmk:wrapper></property> </emphasis><diffmk:wrapper diffmk:change="added"> checkbox. </diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Configure new JBoss ESB Runtime</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/11_esb_runtime_new.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">The new JBoss ESB Runtime will be configured. Click </diffmk:wrapper><emphasis diffmk:change="added"> <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">OK</diffmk:wrapper></property> </emphasis><diffmk:wrapper diffmk:change="added"> to finish and save the preferences.
+ You can use the configuration when creating a JBoss ESB project. </diffmk:wrapper></para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">When a ESB runtime is configured for your ESB project you are able to change it to any other using the classpath container page for ESB runtime. To do that, turn to the Package Explorer view and right-click the "JBoss ESB Runtime" library. Select </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Properties</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> and a table listing all available JBoss ESB runtimes will appear:</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Classpath Container Page to change ESB runtime</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/20_classpath_container.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Choose one of them to set to the ESB project and click </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Ok</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></para>
+
+
+ </section>
+
+
+ <section diffmk:change="added" id="using_SOA">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Using and Configuring SOA Platform</diffmk:wrapper></title>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">In this chapter you will know what is JBoss Enterprise SOA Platform and how you can configure it to use for your ESB projects. </diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss Enterprise SOA Platform delivers a flexible, standards-based platform to integrate applications, SOA services, business events and automate business processes. The SOA Platform integrates specific versions of JBoss ESB, jBPM, Drools and the JBoss Enterprise Application Platform that are certified to work together in a single supported enterprise distribution.</diffmk:wrapper></para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Having configured JBoss Enterprise SOA Platform for your ESB project you don't need to install and configure ESB server and runtime as they are already included.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Check here to find more details on the platform: </diffmk:wrapper><ulink diffmk:change="added" url="http://www.jboss.com/products/platforms/soa"><diffmk:wrapper diffmk:change="added">JBoss Enterprise SOA Platform</diffmk:wrapper></ulink><diffmk:wrapper diffmk:change="added"> and </diffmk:wrapper><ulink diffmk:change="added" url="http://www.jboss.com/products/platforms/soa/components"><diffmk:wrapper diffmk:change="added">JBoss Enterprise SOA Platform Component Details</diffmk:wrapper></ulink><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">You can find out what is SOA here: </diffmk:wrapper><ulink diffmk:change="added" url="http://www.jboss.org/jbossesb/resources/SOABasics.html"><diffmk:wrapper diffmk:change="added">Basics of SOA</diffmk:wrapper></ulink><diffmk:wrapper diffmk:change="added"> and </diffmk:wrapper><ulink diffmk:change="added" url="http://www.jboss.org/jbossesb/resources/SOAEOA.html"><diffmk:wrapper diffmk:change="added">SOA and EOA</diffmk:wrapper></ulink><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">To configure the JBoss Enterprise SOA platform select </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Window > Preferences > Server > Runtime Enironments</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">, that will open the Server Runtime Environments Preferences page where you can add, remove and edit a Server Runtime Environment.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Configure new Server Runtime Environment</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/13NewServerRuntimeEnv.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Add</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">, choose </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss 4.2 Runtime</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> as a type of runtime environment, check the </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Create a new local server</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> checkbox and click </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Next</dif!
fmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">:</diffmk:wrapper></para>
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Type of Server Runtime Environment</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/14typeOfRuntime.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">On the next step you can specify a name of the server runtime environement and browse to its location. Click </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Finish</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> to add the server runtime environment.</diffmk:wrapper></para>
+
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">New Server Runtime Environment Details</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/15AddNew.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Now you have your SOA platform configured. To check the configuration create a ESB Project using instructions described </diffmk:wrapper><xref diffmk:change="added" linkend="ESB_project_wizard"></xref><diffmk:wrapper diffmk:change="added">. As a result you will have two projects created:</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Helloworld Projects Created</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/16HelloworldProjects.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Then you will need to add JBoss ESB libraries to your projects to configure the SOA server runtime exactly for your projects. Right-click on your project, select </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Build Path > Add Libraries</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">:</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Add Libraries</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/17_Add_new_libraries.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Choose </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss ESB Libraries</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> and click </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Next</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">:</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">ESB Libraries</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/18_select_libraries.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select the necessary runtime to add to the project classpath:</diffmk:wrapper></para>
+
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Select a ESB runtime</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/esb_project/19_select_runtime.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Click </diffmk:wrapper><emphasis diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Finish</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Now you can deploy your Helloworld project to the server and run a test class in the client Java project to see the test result in the Console view.</diffmk:wrapper></para>
+
+
+
+</section>
+
+
+
+
+
+
+
+
+
+
+</chapter>
+
+
+<chapter id="esb_editor" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/esb/docs/esb_ref_guide/en/modules/esb_editor.xml" xreflabel="esb_editor">
+ <?dbhtml filename="esbEditor.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss ESB</keyword>
+ <keyword>Editor</keyword>
+ <keyword>ESB</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>ESB Editor</title>
+
+ <para> ESB editor has lots of useful features, they are described in details in this chapter. In
+ addition you'll get to know with how <property moreinfo="none">ESB Editor</property> uses combined
+ visual and source editing of esb files.</para>
+
+ <section id="esb_file" role="updated">
+
+ <title>ESB File Editor</title>
+ <para><property moreinfo="none">ESB File Editor</property> is a powerful and customizable tool. ESB File
+ Editor allows developing an application using ESB technology.</para>
+
+ <para>ESB file editor has two tabs: Tree and Source.</para>
+
+ <para>You can switch to Tree. The Tree view for the editor displays all ESB artifacts in a
+ tree format. By selecting any node you can see and edit its properties which will appear
+ in the right-hand area. For example, a Provider:</para>
+ <figure float="0">
+ <title>Tree View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/01_esb_tree_view.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can easily switch from Tree to Source by selecting the Source tab at the bottom of
+ the editor and work in <property moreinfo="none">Source view</property>.</para>
+
+ <figure float="0" id="sourceView">
+ <title>Source View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/02_esb_source_view.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The Source view for the editor displays a text content of the ESB file. It is always
+ synchronized with <property moreinfo="none">Tree view</property>, so any changes made in one of the
+ views will immediately appear in the other.</para>
+
+ <para>No matter what view you select, you get full integration with <property moreinfo="none">Outline
+ view</property>. For example, you can work in the Source view with the help of the
+ Outline view. The Outline view shows a tree structure of the ESB file. Simply select any
+ element in the <property moreinfo="none">Outline view</property> and it will jump to the same place in
+ the Source editor, so you can navigate through the source code with Outline view.</para>
+ <figure float="0">
+ <title>Outline View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/03_esb_outline_view.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Adding, editing or deleting of some artifacts operations are available right in the
+ <property moreinfo="none">Tree view</property> . Right-click any node and select one of the
+ available actions in the context menu. For example, you can easily add a new Provider:</para>
+ <para></para>
+ <figure float="0">
+ <title>Adding New Provider</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/04_esb_add_provider.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can easily add a new Service too:</para>
+ <figure float="0">
+ <title>Adding New Service</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/05_esb_add_service.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The same way you can create a listener for service and other elements of ESB:</para>
+ <figure float="0">
+ <title>Adding New Listener for Service</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/06_esb_add_listener.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The same actions can be done in the right part of <property moreinfo="none">Tree view</property> tab
+ (Form editor) using <property moreinfo="none">Add</property>, <property moreinfo="none">Edit</property> and
+ <property moreinfo="none">Remove</property> buttons.</para>
+
+
+ <para>In order to add a new generic Action to your ESB XML file you should select the
+ Actions node under the Services, then right-click and choose <emphasis>
+ <property moreinfo="none">New > Generic Action</property>. </emphasis></para>
+
+ <figure float="0">
+ <title>Adding New Action in the Tree View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/11_esb_editor.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Or instead make use of <emphasis>
+ <property moreinfo="none">Add...</property>
+ </emphasis> button in the <property moreinfo="none">Form editor</property> on the left.</para>
+ <figure float="0">
+ <title>Adding New Action in the Form Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/12_esb_editor.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>As you can see on the bath figures above, the context menu will also prompt you to
+ insert one of the Actions that are supplied out-of-the-box with <property moreinfo="none">JBoss
+ ESB</property>. After choosing one an appeared <property moreinfo="none">New Action wizard</property>
+ will ask you to fill out a name field and other fields specific for each Action
+ property. For example, for <emphasis>
+ <property moreinfo="none">Content Based Router</property>
+ </emphasis> Action the wizard looks as follows:</para>
+
+ <figure float="0">
+ <title>New Action Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/13_esb_editor.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>After confirming creating the Action you can see it in the Tree under the <emphasis>
+ <property moreinfo="none">Actions</property>
+ </emphasis> node and preview as well as edit its settings in the <property moreinfo="none">Form
+ editor</property> on the left.</para>
+
+ <figure float="0">
+ <title>Form Editor for Content Based Router</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/14_esb_editor.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><property moreinfo="none">ESB editor</property> can recognize some specific objects. On the figure you
+ can see <emphasis>org.jboss.soa.esb.actions.ContentBasedRouter</emphasis> in the <emphasis>
+ <property moreinfo="none">Class</property>
+ </emphasis> section.</para>
+
+ </section>
+
+ <section id="esb_editors_features">
+
+ <title>ESB Editors Features</title>
+ <para>JBoss ESB tooling has powerful editor features that help you easily make use of
+ content and code assist.</para>
+
+ <section id="ESBsyntaxvalidation84">
+
+ <title>ESB syntax validation</title>
+ <para>When working in <property moreinfo="none">JBoss ESB editor</property> you are constantly provided
+ with feedback and contextual error checking as you type. In the Source viewer, if at
+ any point a tag is incorrect or incomplete, an error will be indicated next to the
+ line and also in the <property moreinfo="none">Problems view</property> below.</para>
+ </section>
+
+ <section id="ESBSupportXMLSchema">
+ <title>Support for XML Schema</title>
+
+ <para>JBoss ESB Framework fully <link linkend="sourceView">supports XML files based on
+ schemas as well as DTDs</link>.</para>
+ </section>
+
+ <!--<section id="OpenOnSelection">
+
+ <title>OpenOn</title>
+
+ <para><property>OpenOn</property> let's you easily navigate through your
+ project without using the Package Explorer view (project tree). With OpenOn, you can
+ simply click on a reference to another file and that file will be opened.</para>
+
+ <para>OpenOn is available for the XML files </para>
+
+ <para>Press and hold down the Ctrl key. As you move the mouse cursor over different
+ file references in the file, they display an underline. When you have the mouse
+ cursor over the name of the file you want to open, click and the file will open
+ in its own editor. In this example the managed bean NameBean will open.</para>
+
+ </section>
+ -->
+
+ <section id="ESBContentAssist">
+
+ <title>Content Assist for ESB XML file</title>
+
+ <para>When you work with any ESB XML file <property moreinfo="none">Content Assist</property> is
+ available to help you. It provides pop-up tip to help you complete your code
+ statements. It allows you to write your code faster and with more accuracy. Content
+ assist is always available in the Source mode. Simply type <emphasis>
+ <property moreinfo="none">Ctrl-Space</property>
+ </emphasis> to see what is available.</para>
+
+ <para>Content Assist for ESB XML file:</para>
+ <figure float="0">
+ <title>Content Assist for ESB XML file</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/08_esb_features.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Content Assist for attributes:</para>
+ <figure float="0">
+ <title>Content Assist for attributes:</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/09_esb_features.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <!-- </section>
+
+ <section id="ContentAssistWithinTreeEditor">
+
+ <title>Content Assist within Tree ESB Editor</title>
+
+ <para>JBoss Developer Studio also provides Content Assist when working within the Tree ESB editor.
+ Just click <emphasis><property>Ctrl-Space</property>.</emphasis></para>
+ <figure>
+ <title>Content Assist in Tree ESB Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
+ fileref="images/esb_file/09_editors_features.png" scale="85"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section> -->
+ </section>
+
+ <section id="FullControlOverSourceFiles-SynchronizedSourcAndVisualEditing">
+
+ <title>Synchronized Source and Visual Editing</title>
+
+ <para>ESB file can be edited in either source or extra visual modes at the same time.</para>
+
+ <para>JBoss Tools provide you two different editors to speed your development: a
+ graphical view (<property moreinfo="none">Tree</property>) and source (<property moreinfo="none">Source</property>).
+ At the same time, you always have full control over esb source file. Any changes you
+ make in the source view will immediately appear in the tree view. Both views are
+ synchronized, you can edit the file in any view.</para>
+
+ <figure float="0">
+ <title>Two Views are Synchronized</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_editor/10_esb_features.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The last chapter covers capabilities on how you can use ESB editor.</para>
+
+ <para>In summary, this reference supplies you with all necessary information on the
+ functionality that JBoss ESB Editor provides for work with JBoss ESB.</para>
+ </section>
+ </section>
+
+
+
+</chapter></book>
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/esb_support.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/esb_support.xml 2008-12-19 20:24:04 UTC (rev 12785)
+++ branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/esb_support.xml 2008-12-19 20:28:10 UTC (rev 12786)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="esb_support">
+<chapter id="esb_support" role="updated">
<?dbhtml filename="esb_support.html"?>
<chapterinfo>
<keywordset>
@@ -14,7 +14,7 @@
<title>ESB Support</title>
<para>In this section we will focus on all concepts that <property>JBoss Tools</property>
- integrates for working with JBoss ESB.</para>
+ integrate for working with JBoss ESB.</para>
<section>
<title>ESB Tools Installation</title>
@@ -25,12 +25,11 @@
<para>ESB Tools come as one module of JBoss Tools project. Since ESB Tools have a
dependence on other JBoss Tools modules we recommend you to install a bundle
of all <ulink url="http://labs.jboss.com/tools/download/index.html">JBoss
- Tools plug-ins</ulink> installation instruction on which you can find on
- JBoss Wiki in <ulink url="http://labs.jboss.com/wiki/InstallingJBossTools"
+ Tools plug-ins</ulink>. You can find all necessary installation instructions on JBoss Wiki in the <ulink url="http://labs.jboss.com/wiki/InstallingJBossTools"
>InstallingJBossTools</ulink> section.</para>
</section>
- <section>
+ <section role="new">
<title>Creating a ESB Project</title>
<para>In this chapter we suggest a step-by-step walk-through of creating a new
ESB project. Let's try to create a new JBoss ESB project.</para>
@@ -42,10 +41,10 @@
</emphasis> in the main menu bar or context menu for selected project and
then <emphasis>
<property>ESB > ESB Project</property>
- </emphasis> in the New dialog:</para>
+ </emphasis> in the dialog opened:</para>
<figure>
- <title>New Dialog</title>
+ <title>Select a Wizard dialog</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/01_create_esb_project.png"/>
@@ -55,12 +54,11 @@
<para> Clicking <emphasis>
<property>Next</property>
- </emphasis> brings us to the first wizard page where it's necessary to
- specify the project name, ESB version and target JBoss Runtime. We set, for example, <emphasis>
+ </emphasis> brings you to the JBoss ESB Project wizard page where a project name, ESB version and target JBoss Runtime are to be specified. Specify, for example, <emphasis>
<property>helloworld</property>
- </emphasis> as the name and accept default ESB version.</para>
+ </emphasis> as a Project name and accept the default ESB version.</para>
<figure>
- <title>Project Name, Target JBoss Runtime and ESB Version</title>
+ <title>JBoss ESB Project wizard</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/02_create_esb_project.png"/>
@@ -70,30 +68,30 @@
<para> Clicking <emphasis>
<property>Next</property>
- </emphasis> brings us to the ESB facet installation page where we can
- specify source folder name, ESB content folder name, ESB content folder is the folder that contains the most of
- artifacts that an ESB archive needs, we also can configure ESB libraries to the project by selecting a ESB runtime,
- there are two ways to set ESB runtime: </para>
+ </emphasis> brings you to the ESB facet installation page where you can
+ specify Java Source Directory and ESB Content Directory. ESB Content Directory is a folder that contains the most of
+ artifacts that an ESB archive needs. You also can configure ESB libraries to the project by selecting a ESB runtime using one of the options:,
+ </para>
<para>1. Use <emphasis>
<property>Server Supplied ESB Runtime</property>
</emphasis>
</para>
- <para> 2. Select an ESB runtime from JBoss ESB runtime list predefined in preference
+ <para> 2. Select a ESB runtime from the JBoss ESB runtime list predefined in the preferences
</para>
- <para>If choose the first option, we have to make sure that the project has Target JBoss Runtime set and the runtime has a ESB runtime installed.
+ <para>If you choose the first option, make sure that the project has the Target JBoss Runtime set and this runtime has a ESB runtime installed.
</para>
<figure>
- <title>JBoss ESB facet installation</title>
+ <title>Install ESB facet step</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/03_create_esb_project.png"/>
</imageobject>
</mediaobject>
</figure>
- <para>Clicking <emphasis>
+ <para>Click <emphasis>
<property>Finish</property>
- </emphasis>, an ESB project with default <emphasis><property>jboss-esb.xml</property></emphasis>
+ </emphasis> and a ESB project with the default <emphasis><property>jboss-esb.xml</property></emphasis>
will be created. </para>
<figure>
@@ -107,14 +105,13 @@
</section>
- <section>
+ <section id="ESB_project_wizard" xreflabel="here" role="new">
<title>Creating ESB Project using JBoss Tools Project Examples Wizard</title>
- <para>JBoss Tools provides a Project Example wizard, it provides a easy way for users to create some kinds of project, so far,
- you can find some ESB samples and Seam, Portlet samples as well, now let's start to
- create a ESB project using the Project Examples wizard.</para>
+ <para>JBoss Tools provides a Project Example wizard that is an easy way for users to create some kinds of projects to be used as examples with some predefined structure. Let's start
+ creating a ESB project using this wizard.</para>
- <para>Before create a ESB project example, you should create JBoss Runtime with the name is <emphasis><property>
- JBoss 4.2 Runtime</property></emphasis>, it will be used by the ESB examples. </para>
+ <para>Before creating a ESB project example create JBoss Runtime with name <emphasis><property>
+ JBoss 4.2 Runtime</property></emphasis>, it will be used by your ESB project example. </para>
<para>Select <emphasis>
<property>File >New > Others </property>
@@ -124,7 +121,7 @@
</emphasis> in the New dialog:</para>
<figure>
- <title>New Dialog</title>
+ <title>Select a wizard - Project Examples</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/05_esb_project_example.png"/>
@@ -134,10 +131,10 @@
<para> Clicking <emphasis>
<property>Next</property>
- </emphasis>, it brings us to the wizard page where we can select a ESB project example from the example list.
+ </emphasis> brings you to the wizard page where you can select a ESB project example from the example list.
Every ESB example has two projects, one is a ESB project and another is a Java project used to test the ESB project.</para>
<figure>
- <title>JBoss Tools Project Examples</title>
+ <title>JBoss Tools ESB Project Examples</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/06_esb_project_example.png"/>
@@ -146,9 +143,9 @@
</figure>
<para>Select <emphasis><property>JBoss ESB HelloWorld Example</property> </emphasis> ESB and Client project, and then click
- <emphasis><property>Finish</property></emphasis>, then you can get two projects created. </para>
+ <emphasis><property>Finish</property></emphasis>, then you will get two projects created. </para>
<figure>
- <title>JBoss ESB Project Examples</title>
+ <title>JBoss ESB Project Examples: helloworld and helloworld_testclient</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/07_esb_project_example.png"/>
@@ -156,18 +153,18 @@
</mediaobject>
</figure>
- <para> Deploying the HelloWorld ESB project and run a test class in the client Java project, see the the test result in Console view.</para>
+ <para> Deploy the HelloWorld ESB project and run a test class in the client Java project to see the test result in the Console view.</para>
</section>
- <section>
+ <section role="new">
<title>Deploying a ESB Project</title>
- <para>In this chapter we will show you how to deploy a ESB project using WTP deployment framework.</para>
+ <para>In this chapter youwill see how to deploy a ESB project using the WTP deployment framework.</para>
- <para>Before deploy the project, open the JBoss Server View by selecting <emphasis><property>Window > Show View > Other >
+ <para>Before deploying the project, open the JBoss Server View by selecting <emphasis><property>Window > Show View > Other >
Server > JBoss Server View</property></emphasis>,
- and then create a JBoss Server in the server view and start it, and then right click the created JBoss server,
+ create a JBoss Server in the Server view and start it, and then right click the created JBoss server,
select <emphasis><property> </property> Add and Remove Projects</emphasis>,
- add ESB projects which you want to deploy from left side to right side on the popped up dialog. </para>
+ and add the ESB projects you want to deploy from the left side to the right side in the opened dialog. </para>
<figure>
<title>Add and Remove Projects</title>
@@ -178,11 +175,11 @@
</mediaobject>
</figure>
- <para>Clicking <emphasis><property>Finish</property> </emphasis> button, thus, the project is added into the JBoss Server.
- You also can drag the ESB project from Project View to the JBoss server.</para>
+ <para>Click <emphasis><property>Finish</property> </emphasis> to add the project to the server.
+ You also can drag the ESB project from the Project View to the server.</para>
<figure>
- <title>Configure new JBoss ESB Runtime</title>
+ <title>JBoss Server View</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/09_esb_runtime_new.png"/>
@@ -190,9 +187,8 @@
</mediaobject>
</figure>
- <para>So far, we add the ESB project to the JBoss server module list, then we should publish the project the server,
- right click the JBoss Server and select <emphasis><property>Publish</property></emphasis>,
- you can check the deploying result in Console view.</para>
+ <para>Thus, you have just added the ESB project to the JBoss server module list. Right click the JBoss Server and select <emphasis><property>Publish</property></emphasis> to publish the project on the server.
+ You can check the deploying result in the Console view.</para>
</section>
@@ -211,7 +207,7 @@
</emphasis> in the New dialog:</para>
<figure>
- <title>New Dialog</title>
+ <title>Select a wizard - ESB File</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_support/01_create_esb.png"/>
@@ -221,13 +217,12 @@
<para> Clicking <emphasis>
<property>Next</property>
- </emphasis> brings us to the wizard page where it's necessary to
- specify the folder, name and version for the file. We choose, for example, <emphasis>
+ </emphasis> brings you to the wizard page where a folder, a name and a version for the file should be specified. Choose, for example, <emphasis>
<property>jboss-esb.xml</property>
- </emphasis> as the name and accept the selected projects folder and default
+ </emphasis> as the name and accept the selected projects folder and the default
version.</para>
<figure>
- <title>Folder, Name and Version</title>
+ <title>Folder, Name and Version for ESB file</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_support/02_create_esb.png"/>
@@ -235,7 +230,7 @@
</mediaobject>
</figure>
- <para>Thus, our file will be created in the selected projects folder by default. If
+ <para>Thus, your file will be created in the selected projects folder by default. If
you want to change the folder for your future file click <emphasis>
<property>Browse...</property>
</emphasis> button to set needed folder or simply type it.</para>
@@ -247,20 +242,20 @@
</section>
- <section>
- <title>Configuring ESB Runtime in Preference</title>
- <para>In this chapter we will show you how to predefine a JBoss ESB runtime on preference page.</para>
+ <section role="new">
+ <title>Configuring ESB Runtime in Preferences</title>
+ <para>In this chapter you will know how to predefine a JBoss ESB runtime on the Preferences page.</para>
<para>You may already know, there are two ways to set JBoss ESB runtime when creating a ESB project,
- one way is to use the project target JBoss runtime, another way is to select a JBoss ESB runtime which predefined in JBoss Tools preference.
+ one is to use the project target JBoss runtime, and another is to select a JBoss ESB runtime predefined in JBoss Tools preferences.
Let's configure it.</para>
<para>Select <emphasis>
<property>Window >Preferences > JBoss Tools > JBoss ESB Runtime</property>
- </emphasis> , it bring us to the JBoss ESB Runtime preference page where you can add, remove and Edit a JBoss ESB runtime.</para>
+ </emphasis>, to open the JBoss ESB Runtime Preferences page where you can add, remove and Edit a JBoss ESB runtime.</para>
<figure>
- <title>New JBoss ESB Runtime</title>
+ <title>JBoss ESB Runtimes</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/esb_project/10_esb_runtime.png"/>
@@ -268,10 +263,8 @@
</mediaobject>
</figure>
- <para> Select <emphasis>
- <property>Add</property>
- </emphasis>, it pop up a dialog where we can specify the JBoss ESB runtime location, name and version number,
- you also can customize the libraries of the runtime by checking the <emphasis><property>Customize JBoss ESB Runtime jars</property> </emphasis> checkbox. </para>
+ <para> Select <emphasis><property>Add</property></emphasis> to open a dialog where you can specify the JBoss ESB runtime location, name and version number.
+ You also can customize the libraries of the runtime by checking the <emphasis><property>Customize JBoss ESB Runtime jars</property> </emphasis> checkbox. </para>
<figure>
<title>Configure new JBoss ESB Runtime</title>
@@ -282,9 +275,128 @@
</mediaobject>
</figure>
- <para>The new JBoss ESB Runtime will be configured, click <emphasis> <property>OK</property> </emphasis> to finish the dialog and save the preference,
- then you can use the configuration when creating JBoss ESB project. </para>
+ <para>The new JBoss ESB Runtime will be configured. Click <emphasis> <property>OK</property> </emphasis> to finish and save the preferences.
+ You can use the configuration when creating a JBoss ESB project. </para>
+ <para>When a ESB runtime is configured for your ESB project you are able to change it to any other using the classpath container page for ESB runtime. To do that, turn to the Package Explorer view and right-click the "JBoss ESB Runtime" library. Select <emphasis><property>Properties</property></emphasis> and a table listing all available JBoss ESB runtimes will appear:</para>
+
+ <figure>
+ <title>Classpath Container Page to change ESB runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/20_classpath_container.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+ <para>Choose one of them to set to the ESB project and click <emphasis><property>Ok</property></emphasis>.</para>
+
+
+ </section>
+
+
+ <section id="using_SOA" role="new">
+ <title>Using and Configuring SOA Platform</title>
+
+ <para>In this chapter you will know what is JBoss Enterprise SOA Platform and how you can configure it to use for your ESB projects. </para>
+
+ <para>JBoss Enterprise SOA Platform delivers a flexible, standards-based platform to integrate applications, SOA services, business events and automate business processes. The SOA Platform integrates specific versions of JBoss ESB, jBPM, Drools and the JBoss Enterprise Application Platform that are certified to work together in a single supported enterprise distribution.</para>
+ <para>Having configured JBoss Enterprise SOA Platform for your ESB project you don't need to install and configure ESB server and runtime as they are already included.</para>
+
+ <para>Check here to find more details on the platform: <ulink url="http://www.jboss.com/products/platforms/soa">JBoss Enterprise SOA Platform</ulink> and <ulink url="http://www.jboss.com/products/platforms/soa/components">JBoss Enterprise SOA Platform Component Details</ulink>.</para>
+ <para>You can find out what is SOA here: <ulink url="http://www.jboss.org/jbossesb/resources/SOABasics.html">Basics of SOA</ulink> and <ulink url="http://www.jboss.org/jbossesb/resources/SOAEOA.html">SOA and EOA</ulink>.</para>
+
+ <para>To configure the JBoss Enterprise SOA platform select <emphasis>
+ <property>Window > Preferences > Server > Runtime Enironments</property></emphasis>, that will open the Server Runtime Environments Preferences page where you can add, remove and edit a Server Runtime Environment.</para>
+
+ <figure>
+ <title>Configure new Server Runtime Environment</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/13NewServerRuntimeEnv.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
- </section>
-
+ <para>Select <emphasis><property>Add</property></emphasis>, choose <emphasis><property>JBoss 4.2 Runtime</property></emphasis> as a type of runtime environment, check the <emphasis><property>Create a new local server</property></emphasis> checkbox and click <emphasis><property>Next</property></emphasis>:</para>
+ <figure>
+ <title>Type of Server Runtime Environment</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/14typeOfRuntime.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On the next step you can specify a name of the server runtime environement and browse to its location. Click <emphasis><property>Finish</property></emphasis> to add the server runtime environment.</para>
+
+
+ <figure>
+ <title>New Server Runtime Environment Details</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/15AddNew.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Now you have your SOA platform configured. To check the configuration create a ESB Project using instructions described <xref linkend="ESB_project_wizard"/>. As a result you will have two projects created:</para>
+
+ <figure>
+ <title>Helloworld Projects Created</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/16HelloworldProjects.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Then you will need to add JBoss ESB libraries to your projects to configure the SOA server runtime exactly for your projects. Right-click on your project, select <emphasis><property>Build Path > Add Libraries</property></emphasis>:</para>
+
+ <figure>
+ <title>Add Libraries</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/17_Add_new_libraries.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Choose <emphasis><property>JBoss ESB Libraries</property></emphasis> and click <emphasis><property>Next</property></emphasis>:</para>
+
+ <figure>
+ <title>ESB Libraries</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/18_select_libraries.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Select the necessary runtime to add to the project classpath:</para>
+
+
+ <figure>
+ <title>Select a ESB runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/esb_project/19_select_runtime.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Click <emphasis><property>Finish</property></emphasis>.</para>
+ <para>Now you can deploy your Helloworld project to the server and run a test class in the client Java project to see the test result in the Console view.</para>
+
+
+
+</section>
+
+
+
+
+
+
+
+
+
+
</chapter>
Modified: branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/introduction.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/introduction.xml 2008-12-19 20:24:04 UTC (rev 12785)
+++ branches/jbosstools-3.0.0.CR1/esb/docs/esb_ref_guide/en/modules/introduction.xml 2008-12-19 20:28:10 UTC (rev 12786)
@@ -16,15 +16,15 @@
<title>Introduction</title>
- <section>
+ <section role="updated">
<title>What is ESB?</title>
- <para>ESB (Enterprise Service Bus) - an abstraction layer on top of an implementation of an
- enterprise messaging system that provides the features with which Service Oriented
- Architectures may be implemented.</para>
- <para>If you want to develop applications using ESB technology JBoss ESB also meet your
- needs. The JBoss Tools provide ESB editor and all necessary wizards for creating ESB
+ <para>ESB (Enterprise Service Bus) - an abstraction layer on top of implementation of an
+ enterprise messaging system that provides the features Service Oriented
+ Architectures may be implemented with.</para>
+ <para>If you want to develop applications using ESB technology JBoss ESB also meets your
+ needs. The JBoss Tools provide ESB editor and all necessary wizards for creating an ESB
file.</para>
<para>In this guide we provide you with the information on ESB Editor which allows you to
develop ESB file much faster and with far fewer errors so sparing your time.</para>
15 years, 4 months
JBoss Tools SVN: r12785 - in trunk/ws/docs/reference/en: modules and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2008-12-19 15:24:04 -0500 (Fri, 19 Dec 2008)
New Revision: 12785
Added:
trunk/ws/docs/reference/en/master_output.xml
Modified:
trunk/ws/docs/reference/en/master.xml
trunk/ws/docs/reference/en/modules/client.xml
trunk/ws/docs/reference/en/modules/preference.xml
trunk/ws/docs/reference/en/modules/webproject.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-324
the latest docs that are done for release 3.0.0.CR1 from trunk are added to branch
master_output - the file to build guide versions with highlighted diff markers
Modified: trunk/ws/docs/reference/en/master.xml
===================================================================
--- trunk/ws/docs/reference/en/master.xml 2008-12-19 20:16:55 UTC (rev 12784)
+++ trunk/ws/docs/reference/en/master.xml 2008-12-19 20:24:04 UTC (rev 12785)
@@ -21,7 +21,7 @@
<holder>JBoss, a division of Red Hat Inc.</holder>
</copyright>
<releaseinfo>
- Version: 3.0.0.CR1
+ Version: 3.0.0.beta1
</releaseinfo>
<abstract>
<title/>
Added: trunk/ws/docs/reference/en/master_output.xml
===================================================================
--- trunk/ws/docs/reference/en/master_output.xml (rev 0)
+++ trunk/ws/docs/reference/en/master_output.xml 2008-12-19 20:24:04 UTC (rev 12785)
@@ -0,0 +1,566 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
+"http://www.docbook.org/xml/4.3/docbookx.dtd"
+
+[<!ENTITY overview SYSTEM "modules/overview.xml">
+<!ENTITY topdown SYSTEM "modules/topdown.xml">
+<!ENTITY preference SYSTEM "modules/preference.xml">
+<!ENTITY webproject SYSTEM "modules/webproject.xml">
+<!ENTITY client SYSTEM "modules/client.xml">
+]><book xmlns:diffmk="http://diffmk.sf.net/ns/diff">
+
+ <bookinfo>
+ <title>JBoss WS User Guide</title>
+ <author><firstname>Denny</firstname><surname>Xu</surname><email>dxu(a)redhat.com</email></author>
+ <author><firstname>Grid</firstname><surname>Qian</surname><email>fqian(a)redhat.com</email></author>
+ <pubdate>July 2008</pubdate>
+ <copyright>
+ <year>2008</year>
+ <holder>JBoss, a division of Red Hat Inc.</holder>
+ </copyright>
+ <releaseinfo><diffmk:wrapper diffmk:change="changed">
+ Version: 3.0.0.CR1
+ </diffmk:wrapper></releaseinfo>
+<abstract>
+ <title></title>
+ <para>
+ <ulink url="http://download.jboss.org/jbosstools/nightly-docs/en/ws_ref_guide/pdf/WS_...">PDF version</ulink>
+ </para>
+</abstract>
+
+
+ </bookinfo>
+
+ <toc></toc>
+
+<chapter id="overview" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/ws/docs/reference/en/modules/overview.xml">
+ <title>JBossWS Runtime Overview</title>
+
+ <para>JBossWS is a web service framework developed as a part of the JBoss Application Server. It implements the JAX-WS specification that defines a programming model and run-time architecture for implementing web services in Java, targeted at the Java Platform, Enterprise Edition 5 (Java EE 5).</para>
+
+</chapter>
+
+<chapter id="create_ws_topdown" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/ws/docs/reference/en/modules/topdown.xml">
+ <?dbhtml filename="topdown.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Web Service</keyword>
+ <keyword>JBossWS Web Service runtime</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Creating a Web Service using JBossWS runtime</title>
+ <para>In this chapter we provide you with the necessary steps to create a Web Service using
+ JBossWS runtime.</para>
+
+ <section id="createproject">
+ <title>Creating a Dynamic Web project</title>
+
+ <para>Before creating a web service, you should have a Dynamic Web Project created:</para>
+ <figure float="0">
+ <title>Dynamic Web Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_webproject_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Create a Web project by selecting <emphasis>
+ <property moreinfo="none">New > Project... > Dynamic Web project</property>
+ </emphasis>. Enter the following information: </para>
+ <itemizedlist>
+ <listitem>
+ <para>Project Name: enter a project name</para>
+ </listitem>
+ <listitem>
+ <para>Target runtime: any server depending on your installation. If it is not listed,
+ click New and browse to the location where it is installed to. You may set <emphasis>
+ <property moreinfo="none">Target Runtime</property>
+ </emphasis> to <emphasis>
+ <property moreinfo="none">None</property>
+ </emphasis>, in this case, you should add <link linkend="addfacet">JBoss Web Service
+ facet to the project</link>.</para>
+ <figure float="0">
+ <title>Dynamic Web Project Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_webproject_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>Configure Web Module values:</para>
+ <figure float="0">
+ <title>Web Module Settings Configuration</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_webproject_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ </itemizedlist>
+ <para>Click on the <property moreinfo="none">Finish</property> button.</para>
+ </section>
+
+ <section id="addfacet">
+ <title>Configure JBoss Web Service facet settings</title>
+ <para>If you have already created a new Dynamic Web project, the next step is to add JBoss Web
+ Service facet to the project:</para>
+ <figure float="0" id="figure_addfacet">
+ <title>Configure JBoss Web Service Facet</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_facet.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Server Supplied JBossWS Runtime: If you have already set a JBoss runtime to the
+ project's target runtime, you may choose <emphasis>
+ <property moreinfo="none">Server Supplied JBossWS Runtime</property>
+ </emphasis> and then click <emphasis>
+ <property moreinfo="none">Ok</property>
+ </emphasis> to finish the configuration of JBoss Web Service facet. </para>
+ <para>If the project has no <emphasis>
+ <property moreinfo="none">Target Runtime</property>
+ </emphasis> settings, you should check the second radio button and specify a JBossWS
+ runtime from the list. You also can create a new JBossWS runtime, click on the <emphasis>
+ <property moreinfo="none">New...</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> button will bring you to another dialog to configure new JBossWS runtime.</diffmk:wrapper></para>
+ <figure float="0" id="figure_addfacet1">
+ <title>Configure JBossWS Runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_newruntime.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>See how to configure a new JBossWS runtime <link linkend="preference">here</link>:</para>
+
+ </section>
+
+
+ <section id="topdownwebservice">
+ <title>Creating a Web Service from a WSDL document using JBossWS runtime</title>
+ <para>In this chapter we provide you with the necessary steps to create a Web Service from a
+ WSDL document using JBossWS runtime.</para>
+ <para>At first, please make sure that you have already created a dynamic Web project with
+ JBoss Web Service facet installed. </para>
+ <para>See how to make it <link linkend="createproject">here</link>> and <link linkend="addfacet">here</link>.</para>
+
+ <para>To create a Web Service using JBossWS runtime select<emphasis>
+ <property moreinfo="none">File > New > Other > Web Services > Web Service</property>
+ </emphasis> to run Web Service creation wizard. </para>
+ <para>Let's get through the wizard step-by-step:</para>
+ <figure float="0" id="figure_create_ws_topdown">
+ <title>New Web Service Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_ws_creation1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>First, please select <property moreinfo="none">Top down Java bean Web Service</property> from the Web
+ Service type list, and select a WSDL document from workspace, click on the Server name
+ lilnk on the page will bring you to another dialog. Here you can specify the server to a
+ JBoss Server and Web Service runtime to JBossWS runtime:</para>
+ <figure float="0" id="figure_create_ws_topdown_setserver">
+ <title>Select Server and Web Service runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_ws_creation1_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Click on the <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button to see the next wizard view opened:</para>
+
+ <figure float="0" id="figure_create_ws_topdown1">
+ <title>New Web Service Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_ws_creation1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Click on the <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> button to proceed:</para>
+ <figure float="0" id="figure_create_ws_topdown_codegen">
+ <title>New Web Service Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_ws_creation2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>On this page, the default package name comes from the namespace of the WSDL document,
+ you also can change it to any valid package name you want. JAX-WS specification should be
+ set to 2.0 if your JBossWS runtime in JBoss Server is JBossWS native runtime. You can
+ specify a catalog file and binding files if you have them. If you want the wizard to
+ generate empty implementation classes for the Web Service, check the <emphasis>
+ <property moreinfo="none">Generate default Web Service implementation classes</property>
+ </emphasis> check box. If you want to update the default Web.xml file with the Web Service
+ servlets configured, check the <emphasis>
+ <property moreinfo="none">Update the default Web.xml</property>
+ </emphasis> check box. Click on the <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> or on the <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button to generate code.</para>
+
+ <para>Once the Web Service code is generated, you can view the implementation class and add
+ business logic to each method.</para>
+ <figure float="0" id="figure_impl_code">
+ <title>The generated implementation Java code</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_ws_Impl_code_view.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>View the Web.xml file:</para>
+ <figure float="0" id="figure_webxml">
+ <title>Web.xml</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_ws_webxml.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="bottomupws">
+ <title>Creating a Web service from a Java bean using JBossWS runtime</title>
+ <para>The Web Service wizard assists you in creating a new Web service, configuring it for
+ deployment, and then deploying it to the server.</para>
+ <para>To create a Web service from a bean using JBoss WS:</para>
+ <para>Setup <link linkend="preference">JBoss WS and development environment</link>.</para>
+ <para>Create <link linkend="createproject">a Dynamic Web project</link>.</para>
+ <para>Add <link linkend="addfacet">JBossWS Facet</link> to Web project.</para>
+ <para>Create a Web Service from a java bean: </para>
+ <itemizedlist>
+ <listitem>
+ <para>Switch to the Java EE perspective <emphasis>
+ <property moreinfo="none">Window > Open Perspective > Java EE</property>
+ </emphasis>.</para>
+ </listitem>
+ <listitem>
+ <para>In the Project Explorer view, select the bean that you created or imported into
+ the source folder of your Web project.</para>
+ <figure float="0">
+ <title>Create a new Bean Class</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_bottomup.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">File > New > Other</property>
+ </emphasis>. Select Web Services in order to display various Web service wizards.
+ Select the Web Service wizard. Click on the <property moreinfo="none">Next</property> button.</para>
+ <figure float="0">
+ <title>New Web Service</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_bottomup_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>On the first Web Service wizard page: select <property moreinfo="none">Bottom up Java bean Web
+ service</property> as your Web service type, and select the Java bean from which
+ the service will be created:</para>
+ <figure float="0">
+ <title>Set Web Service Common values</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_bottomup_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Select the stages of Web service development that you want to complete using
+ the slider: </para>
+ <itemizedlist>
+ <listitem>
+ <para>Develop: this will develop the WSDL definition and implementation of
+ the Web service. This includes such tasks as creating modules that will
+ contain generated code, WSDL files, deployment descriptors, and Java
+ files when appropriate.</para>
+ </listitem>
+ <listitem>
+ <para>Assemble: this ensures the project that will host the Web service or
+ client gets associated to an EAR when required by the target application
+ server.</para>
+ </listitem>
+ <listitem>
+ <para>Deploy: this will create the deployment code for the service.</para>
+ </listitem>
+ <listitem>
+ <para>Install: this will install and configure the Web module and EARs on
+ the target server.</para>
+ </listitem>
+ <listitem>
+ <para>Start: this will start the server once the service has been installed
+ on it. The server-config.wsdd file will be generated.</para>
+ </listitem>
+ <listitem>
+ <para>Test: this will provide various options for testing the service, such
+ as using the Web Service Explorer or sample JSPs.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">Select your server: the default server is displayed. If you want to deploy
+ your service to a different server click the link to specify a different server.
+ </diffmk:wrapper></para>
+ </listitem>
+ <listitem>
+ <para>Select your runtime: ensure the JBoss WS runtime is selected.</para>
+ </listitem>
+ <listitem>
+ <para>Select the service project: the project selected in your workspace is
+ displayed. To select a different project click on the project link. If you are
+ deploying to JBoss Application Server you will also be asked to select the EAR
+ associated with the project. Ensure that the project selected as the Client Web
+ Project is different from the Service Web Project, or the service will be
+ overwritten by the client's generated artifacts.</para>
+ </listitem>
+ <listitem>
+ <para>If you want to create a client, select the type of proxy to be generated
+ and repeat the above steps for the client. The better way is to create a web
+ service client project separately.</para>
+ </listitem>
+ </itemizedlist>
+ <para>Click on the <property moreinfo="none">Next</property> button.</para>
+ </listitem>
+ <listitem>
+ <para>On the JBoss Web Service Code Generation Configuration page, set the following
+ values:</para>
+ <figure float="0">
+ <title>Set Web Service values for Code Generation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_bottomup_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Generate WSDL file: select it, you will get a generated WSDL file in your
+ project. But this wsdl's services' address location values are not a real
+ address. </para>
+ </listitem>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">After the Web service has been created, the following option can become
+ available depending on the options you selected: Update the default web.xm
+ file. If selected, you may test the web service by Explorer.</diffmk:wrapper></para>
+ </listitem>
+ </itemizedlist>
+ <para>Click on the <property moreinfo="none">Next</property> button.</para>
+ </listitem>
+ <listitem>
+ <para>On this page, the project is deployed to the server. You can start the server and
+ test the web service. If you want to publish the web service to a UDDI registry, you
+ may click the <property moreinfo="none">Next</property> button to publish it. If not, you may click
+ the <property moreinfo="none">Finish</property> button.</para>
+ <figure float="0">
+ <title>Start a Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_bottomup_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ </itemizedlist>
+ <para>After the Web Service has been created, the following options may become available
+ depending on the options selected:</para>
+ <itemizedlist>
+ <listitem>
+ <para>the generated web services code</para>
+ </listitem>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">If you selected to generate a WSDL file, you will get the file in your project's wsdl folder.</diffmk:wrapper></para>
+ <figure float="0">
+ <title>The generated WSDL file</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_bottomup_6.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>If you selected to update the default web.xml, you will test the web service in
+ the browser. Open the Explorer, input the url for the web service according to
+ web.xml plus <property moreinfo="none">?wsdl.</property>, you will get the WSDL file from Explorer. </para>
+ <figure float="0">
+ <title>The Updated web.xml file</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_bottomup_5.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+</chapter>
+
+
+<chapter id="client" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/ws/docs/reference/en/modules/client.xml">
+ <title>Creating a Web Service Client from a WSDL Document using JBoss WS</title>
+ <para>To create a Web Service Client from a WSDL Document using JBoss WS:</para>
+ <para>Setup <link linkend="preference">JBoss WS and development environment</link>.</para>
+ <para><link linkend="createproject">Creating a Dynamic Web project</link>.</para>
+ <para><link linkend="addfacet">Add JBossWS Facet to Web project</link>.</para>
+ <para>Create a Web Service Client from a WSDL document: </para>
+ <itemizedlist>
+ <listitem>
+ <para>Switch to the Java EE perspective <emphasis><property moreinfo="none">Window > Open Perspective > Java EE</property></emphasis>.</para>
+ </listitem>
+ <listitem>
+ <para>In the Project Explorer view, select the bean that you created or imported into the source folder of your Web project.</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis><property moreinfo="none">File > New > Other</property></emphasis>.Select Web Services in order to display the various Web service wizards. Select the Web Service Client wizard. Click <property moreinfo="none">Next</property> button.</para>
+ <figure float="0">
+ <title>New Web Service Client</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_client.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>The first and second Web Service Client wizard page are same to <link linkend="topdownwebservice">Web Service from a WSDL document</link>.</para>
+ <figure float="0">
+ <title>Set Web Service Common values</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_client_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <figure float="0">
+ <title>Set Web Service values about WSDL file</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_client_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The differences are:</para>
+ <itemizedlist>
+ <listitem>
+ <para><property moreinfo="none">Client Type:</property> Now only support Java Proxy.</para>
+ </listitem>
+ </itemizedlist>
+ <para>Click <property moreinfo="none">Finish</property> button.</para>
+ </listitem>
+ </itemizedlist>
+ <para>After the Web Service Client has been created, the following may occur depending on the options you selected:</para>
+ <itemizedlist>
+ <listitem>
+ <para> the generated web service and client codes</para>
+ </listitem>
+ <listitem>
+ <para>a client sample class.</para>
+ <figure float="0">
+ <title>Client Sample Class</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_client_3.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ </itemizedlist>
+ <para>JBoss WS use a Java class to test Web Service. A client sample class will be generated, you may run this client as a java application to call a web service.</para>
+</chapter>
+
+
+<chapter id="preference" >
+ <title>JBoss WS and development environment</title>
+ <section id="jbosswspreference">
+ <title>JBossWS Preferences</title>
+
+ <para><diffmk:wrapper diffmk:change="changed">In this section you will know how JBossWS preferences can be modified during the
+ development process.</diffmk:wrapper></para>
+
+ <para><diffmk:wrapper diffmk:change="changed">JBossWS preferences can be set on the JBossWS preference page. Click on
+ </diffmk:wrapper><emphasis><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Window > Preferences > JBoss Tools > Web > JBossWS
+ Preferences</diffmk:wrapper></property>.</emphasis></para>
+
+ <para><diffmk:wrapper diffmk:change="changed">On this page you can manage the JBossWS Runtime. Use the appropriate buttons to
+ </diffmk:wrapper><property moreinfo="none">Add</property> more runtimes or to <property moreinfo="none">Remove</property><diffmk:wrapper diffmk:change="changed"> those that
+ are not needed.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>JBossWS Preferences Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Jbossws_preference.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Clicking on <emphasis>
+ <property moreinfo="none">Add</property>
+ </emphasis> or <emphasis>
+ <property moreinfo="none">Edit</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> button will open the form where you can configure a new JbossWS runtime and
+ change the path to JBossWS runtime home folder, modify the name and version of the
+ existing JBossWS runtime settings. Press </diffmk:wrapper><property moreinfo="none">Finish</property><diffmk:wrapper diffmk:change="changed"> to apply the
+ changes.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Edit JBossWS Runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/Jbossws_preference_new.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section diffmk:change="added" id="serverruntime">
+ <title>Default Server and Runtime</title>
+ <para><diffmk:wrapper diffmk:change="changed">Open </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Window > Preferences > Web Services > Server and Runtime</property>
+ </emphasis>. On this page, you can specify a default server and runtime.</para>
+ <para>For ease of use, the better way is to set runtime to JBoss WS.</para>
+ <para>After server and runtime are specified, click on the <property moreinfo="none">Aply</property><diffmk:wrapper diffmk:change="changed"> button
+ to save the values.</diffmk:wrapper></para>
+ <figure float="0">
+ <title></title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jbossws_server_runtime.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">On the whole, this guide covers the fundamental concepts of work with tooling for
+ </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBossWS</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">. It describes how to easily create a Web Service and a Web Service Client using
+ JBossWS Runtime and adjust JBossWS and development environment as well.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">If the information on JBossWS tools in this guide isn't enough for you, ask
+ questions on our </diffmk:wrapper><ulink diffmk:change="added" url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=201"><diffmk:wrapper diffmk:change="added">forum</diffmk:wrapper></ulink><diffmk:wrapper diffmk:change="added">. Your comments and suggestions are also welcome.</diffmk:wrapper></para>
+ </section>
+ </chapter>
+</book>
Modified: trunk/ws/docs/reference/en/modules/client.xml
===================================================================
--- trunk/ws/docs/reference/en/modules/client.xml 2008-12-19 20:16:55 UTC (rev 12784)
+++ trunk/ws/docs/reference/en/modules/client.xml 2008-12-19 20:24:04 UTC (rev 12785)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<chapter id="client" >
+<chapter id="client" revisionflag="added">
<title>Creating a Web Service Client from a WSDL Document using JBoss WS</title>
<para>To create a Web Service Client from a WSDL Document using JBoss WS:</para>
<para>Setup <link linkend="preference">JBoss WS and development environment</link>.</para>
Modified: trunk/ws/docs/reference/en/modules/preference.xml
===================================================================
--- trunk/ws/docs/reference/en/modules/preference.xml 2008-12-19 20:16:55 UTC (rev 12784)
+++ trunk/ws/docs/reference/en/modules/preference.xml 2008-12-19 20:24:04 UTC (rev 12785)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<chapter id="preference" >
+<chapter id="preference" revisionflag="added">
<title>JBoss WS and development environment</title>
<section id="jbosswspreference">
<title>JBossWS Preferences</title>
Modified: trunk/ws/docs/reference/en/modules/webproject.xml
===================================================================
--- trunk/ws/docs/reference/en/modules/webproject.xml 2008-12-19 20:16:55 UTC (rev 12784)
+++ trunk/ws/docs/reference/en/modules/webproject.xml 2008-12-19 20:24:04 UTC (rev 12785)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<chapter id="webproject">
+<chapter id="webproject" revisionflag="added">
<title>Creating a Dynamic Web project</title>
<para>Before creating a web service, you should have a Dynamic Web Project created:</para>
15 years, 4 months
JBoss Tools SVN: r12784 - in branches/jbosstools-3.0.0.CR1/seam/docs/reference/en: modules and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2008-12-19 15:16:55 -0500 (Fri, 19 Dec 2008)
New Revision: 12784
Added:
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/master_output.xml
Modified:
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_application_walkthrough.xml
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_database_application.xml
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/directory_structure.xml
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/intro.xml
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_editors.xml
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_menus_and_actions.xml
branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_preferences.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-324
the latest docs that are done for release 3.0.0.CR1 from trunk are added to branch
master_output - the file to build guide versions with highlighted diff markers
Added: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/master_output.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/master_output.xml (rev 0)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/master_output.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -0,0 +1,2662 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.docbook.org/xml/4.3/docbookx.dtd"
+
+[<!ENTITY intro SYSTEM "modules/intro.xml">
+<!ENTITY creating_new_seam SYSTEM "modules/creating_new_seam.xml">
+<!ENTITY directory_structure SYSTEM "modules/directory_structure.xml">
+<!ENTITY menus_and_actions SYSTEM "modules/seam_menus_and_actions.xml">
+<!ENTITY seam_wizards SYSTEM "modules/seam_wizards.xml">
+<!ENTITY generate_entities SYSTEM "modules/generate_entities.xml">
+<!ENTITY seam_editors SYSTEM "modules/seam_editors.xml">
+<!ENTITY seam_view SYSTEM "modules/seam_view.xml">
+ <!ENTITY seam_preferences SYSTEM "modules/seam_preferences.xml">
+<!ENTITY crud_database_application SYSTEM "modules/crud_database_application.xml">
+<!ENTITY crud_application_walkthrough SYSTEM "modules/crud_application_walkthrough.xml">
+<!ENTITY business_application SYSTEM "modules/business_application.xml">
+<!ENTITY testng SYSTEM "modules/testng.xml">
+
+<!ENTITY seamlink "../../seam/html_single/index.html">
+<!ENTITY aslink "../../as/html_single/index.html">
+<!ENTITY esblink "../../esb_ref_guide/html_single/index.html">
+<!ENTITY gsglink "../../GettingStartedGuide/html_single/index.html">
+<!ENTITY hibernatelink "../../hibernatetools/html_single/index.html">
+<!ENTITY jbpmlink "../../jbpm/html_single/index.html">
+<!ENTITY jsflink "../../jsf/html_single/index.html">
+<!ENTITY jsfreflink "../../jsf_tools_ref_guide/html_single/index.html">
+<!ENTITY jsftutoriallink "../../jsf_tools_tutorial/html_single/index.html">
+<!ENTITY strutsreflink "../../struts_tools_ref_guide/html_single/index.html">
+<!ENTITY strutstutoriallink "../../struts_tools_tutorial/html_single/index.html">
+
+
+]><book xmlns:diffmk="http://diffmk.sf.net/ns/diff">
+
+ <bookinfo>
+
+ <title>Seam Dev Tools Reference Guide</title>
+ <author><firstname>Anatoly</firstname><surname>Fedosik</surname></author>
+ <author><firstname>Olga</firstname><surname>Chikvina</surname></author>
+ <author><firstname>Svetlana</firstname><surname>Mukhina</surname><email>smukhina(a)exadel.com</email></author>
+
+ <pubdate>April 2008</pubdate>
+ <copyright>
+ <year>2007</year>
+ <year>2008</year>
+ <holder>JBoss, a division of Red Hat Inc.</holder>
+ </copyright>
+ <releaseinfo><diffmk:wrapper diffmk:change="changed">
+ Version: 3.0.0.CR1
+ </diffmk:wrapper></releaseinfo>
+
+<abstract>
+ <title></title>
+ <para>
+ <ulink url="http://download.jboss.org/jbosstools/nightly-docs/en/seam/pdf/Seam_Refere...">PDF version</ulink>
+ </para>
+</abstract>
+
+
+ </bookinfo>
+ <toc></toc>
+
+
+<chapter id="intro" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/intro.xml" xreflabel="intro">
+ <?dbhtml filename="intro.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBDS</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Introduction</title>
+
+ <section>
+
+ <title>What is Seam?</title>
+ <para>This introduction will help you to understand what is <property moreinfo="none">Seam</property>.</para>
+ <para><property moreinfo="none">Seam</property> is a fully featured application framework on top of Java EE
+ 5. It is also one of the most popular enterprise Java framework today. Seam deeply
+ integrates many other standard-based or open source frameworks (e.g., JSF, EJB3, JMS,
+ Web Services, jBPM, JBoss Rules, Ajax4jsf, RichFaces, Facelets, Spring, iText, Quartz,
+ TestNG, etc.), and provides a single programming model for developers to
+ "drive" those underlying frameworks via simple annotated POJOs (Plain
+ Old Java Objects). It makes life easier for developers to tackle complex enterprise
+ applications with many component frameworks.</para>
+ </section>
+
+ <section>
+ <title>Installation into Eclipse</title>
+
+ <para>Here, we are going to explain how to install Seam plugin into Eclipse.</para>
+
+ <para>Seam is a one module of JBoss Tools project. Since Seam has a dependence on other JBoss Tools modules we recommend you to install
+ a bundle of all <ulink url="http://labs.jboss.com/tools/download/index.html">JBoss Tools plug-ins</ulink>. Installation instruction you can find on JBoss Wiki in <ulink url="http://labs.jboss.com/wiki/InstallingJBossTools">InstallingJBossTools</ulink> section.</para>
+
+ </section>
+
+ <section>
+ <title>Other relevant resources on the topic</title>
+
+ <para>The <ulink url="http://seamframework.org/">Seam Framework</ulink> - Next generation enterprise Java development.</para>
+ <para>All latest release versions of JBoss Developer Studio/JBoss Tools documentation you can find <ulink url="http://docs.jboss.org/tools/2.1.0.GA/">here</ulink>.</para>
+ <para>The latest documentation builds are available <ulink url="http://download.jboss.org/jbosstools/nightly-docs/">here</ulink>.</para>
+
+ </section>
+</chapter>
+
+
+<chapter id="create_seam" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/creating_new_seam.xml" xreflabel="create_seam">
+ <?dbhtml filename="create_new_seam.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBDS</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Creating a New Seam Project via the New Seam Project wizard</title>
+ <para>In this chapter we provide you with the necessary steps to start working with Seam
+ Framework.</para>
+ <para>At first, we suggest setting the specific Seam perspective that combines a number of
+ different views and editors needed for work with resources concerned. For that select <emphasis>
+ <property moreinfo="none">Window > Open Perspective > Other > Seam</property>
+ </emphasis> or you can also access it through the button in the right top corner.</para>
+
+ <figure float="0">
+ <title>Seam Perspective</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_0.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <section id="standaloneSeam">
+ <title>Create standalone Seam Web Project</title>
+ <para>The best way to get started with Seam is to organise a simple Seam Project and
+ experiment with it by creating variations.</para>
+ <para>Thus, you should select <emphasis>
+ <property moreinfo="none">File > New > Seam Web Project</property>
+ </emphasis> to run the <property moreinfo="none">New Seam Project</property> wizard. The wizard form
+ allows you to create runtime and server instances in order to get started creating,
+ running, and debugging J2EE (only) applications.</para>
+ <para>Seam Web Project wizard has an option for selecting the actual Server (not just WTP
+ runtime) that will be used for the project. This allows the wizard to identify correctly
+ where the required datasource and driver libraries need to go.</para>
+ <para>Let's get through the wizard step-by-step. First, you should enter a name and
+ a location directory for your new project.</para>
+ <figure float="0" id="figure_create_seam1">
+ <title>New Seam Project Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>Clicking on <emphasis>
+ <property moreinfo="none">New...</property>
+ </emphasis> button in the <property moreinfo="none">Target Runtime</property> section will bring you to
+ another dialog. Here, you can specify a new installed Runtime environment or the other
+ type of runtime appropriate for configuring your project. Let's create a JBoss 4.2
+ Runtime. For that after choosing it click on <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> button.</para>
+
+ <figure float="0">
+ <title>Specifying Target Runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>All what you need here is to name runtime, type the path to its install directory or
+ locate it by using <emphasis>
+ <property moreinfo="none">Browse</property>
+ </emphasis> button, select a Java Runtime Environment, and select which configuration
+ you want.</para>
+
+ <figure float="0">
+ <title>Specifying Target Runtime Configurations</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para> Clicking on <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> returns you to the <link linkend="figure_create_seam1">previous
+ dialog</link>. The next step is to define an installed server that you can do by
+ clicking on <emphasis>
+ <property moreinfo="none">New...</property>
+ </emphasis> button in the <property moreinfo="none">Target Server</property> section. In appeared Server
+ Dialog it's possible to select a server version. </para>
+
+ <para> If the chosen server has already got an installed runtime, there appears a combo box
+ with all declared runtimes under the servers view. Here, you can indicate a server
+ runtime that you need. Use <emphasis>
+ <property moreinfo="none">Installed Runtimes...</property>
+ </emphasis> button to see or edit which runtimes are installed. If there is no any
+ declared runtime for chosen server, click on <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> to specify it on the next preferences page.</para>
+
+ <figure float="0">
+ <title>Specifying Target Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Next dialog allows you to verify the information for chosen server, set login
+ credentials to authorize an access to the server and specify a directory for deploying.
+ Leave everything as it is and click on <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis>.</para>
+
+ <figure float="0">
+ <title>Specifying Server Configurations</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On the last wizard step you can modify your project to configure it on server.</para>
+
+ <figure float="0">
+ <title>Project Modification for Configuring on the Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>Once you have the Target Server defined click on <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button to return to the first page of the <property moreinfo="none">New Seam Project
+ wizard</property>.</para>
+
+ <tip>
+ <title>Tip:</title>
+ <para>We suggest that you look through our <ulink url="../../as/html_single/index.html">AS manager
+ guide</ulink> to find out more about runtimes and servers.</para>
+ </tip>
+
+ <figure float="0">
+ <title>Completion of Runtime and Server Configuration</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The last section on this wizard step is <property moreinfo="none">Configuration</property>. Here, you
+ can select one of the pre-defined project configurations either associated with Seam 1.2
+ or with Seam 2.0. Furthermore, you can create your own configuration by pressing the <emphasis>
+ <property moreinfo="none">Modify...</property>
+ </emphasis> button. It will open the dialog which allows to configure your own set of
+ facets for adding extra functionality to your project.</para>
+
+ <para>Pass to the next section to find out more details on this dialog.</para>
+
+ </section>
+ <section id="projectFacets">
+ <title>Select the Project Facets</title>
+
+ <para>The <property moreinfo="none">Project Facets wizard</property> allows you to enable or disable
+ specific facets which define necessary characteristics for the project. In time you
+ switch to this wizard form, all critical facets are already checked for the chosen
+ Configuration.</para>
+
+ <para>Notice that this page of the wizard also allows you to set the necessary version for
+ any facet. </para>
+
+ <figure float="0">
+ <title>Project Facets Selection</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Moreover, here you can specify your own preset of selected facets by checking needed
+ ones in project facets window and clicking on <emphasis>
+ <property moreinfo="none">Save</property>
+ </emphasis> button.</para>
+
+ <figure float="0">
+ <title>Specifying Custom Facet Preset</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>To see all available Server runtimes click on <property moreinfo="none">Runtimes</property> tab on the
+ left. You can create a new one using the <emphasis>
+ <property moreinfo="none">New</property>
+ </emphasis> button. If more than one runtimes are checked here, the <emphasis>
+ <property moreinfo="none">Make Primary</property>
+ </emphasis> button won't be dimmed yet. So you can make use of it to mark
+ primary runtime.</para>
+
+ <figure float="0">
+ <title>Runtime Manipulations</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_16.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><emphasis>
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Ok</diffmk:wrapper></property>
+ </emphasis> button will bring you to the <property moreinfo="none">Web Module</property><diffmk:wrapper diffmk:change="changed"> wizard
+ form again.</diffmk:wrapper></para>
+ </section>
+
+ <section id="configureWebModule">
+ <title>How to Configure Web Module Settings</title>
+
+ <para> As we deal with a Dynamic Web Application we should first specify the top level
+ directory of our application for deploying it to a server afterwards. You know, this
+ kind of application contains both Web and Java code resources. Thus, it's also important
+ to indicate the content directory as well as Java source directory. The wizard will put
+ all those values itself. So you can leave everything as it is.</para>
+
+ <figure float="0">
+ <title>Web Module Settings</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Choose <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> to switch to the next wizard form.</para>
+ </section>
+
+ <section id="addJSFCapab">
+ <title>Adding JSF Capabilities</title>
+
+ <para>This wizard helps you to add JSF capabilities into your project for representing
+ appropriate behaviours associated with JSF. </para>
+ <para>Checking <emphasis>
+ <property moreinfo="none">Server Supplied JSF Implementation</property>
+ </emphasis> means that you will have a default JSF implementation given by server.</para>
+
+ <figure float="0">
+ <title>Adding JSF Capabilities to Web Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In case when you want to use your custom JSF implementation check a lower radio
+ button. You are able to create a library of jars by clicking on <emphasis>
+ <property moreinfo="none">New</property>
+ </emphasis> button.</para>
+ <para>Here, it's necessary to type a <property moreinfo="none">Library Name</property>, select a
+ <property moreinfo="none">Version Supported</property> and add proper <property moreinfo="none">Library
+ jars</property>. Then click on <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> to complete the choice.</para>
+ <figure float="0">
+ <title>Create JSF Implementation Library</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the Component Libraries section of the wizard you can also add <property moreinfo="none">Component
+ Libraries</property> (e.g. <ulink url="http://www.jboss.org/jbossrichfaces">Richfaces</ulink>). Just click on <emphasis>
+ <property moreinfo="none">New</property>
+ </emphasis> button. Appeared dialog will ask you to type the Library name, supported
+ version and add necessary jar's. Press <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> to complete the choice.</para>
+
+ <figure float="0">
+ <title>Create JSF Implementation Component Library</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_18.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The last wizard options allows to edit a path for <property moreinfo="none">JSF Configuration
+ File</property>, a name for <property moreinfo="none">JSF Servlet</property>, <property moreinfo="none">JSF Servlet
+ Classname</property> and change <property moreinfo="none">URL Mapping Patterns</property>.</para>
+
+ <figure float="0">
+ <title>JSF Capabilities Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_19.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Finally, as we are arranging the Seam Web project, the last step we should do is to
+ adjust project configurations associated with the Seam.</para>
+ </section>
+
+ <section id="seamFacet">
+ <title>Configure Seam Facet Settings</title>
+
+ <para>The last wizard step is related to Seam facet and allows you to do the following:</para>
+ <figure float="0">
+ <title>Seam Facet Settings</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Create Seam runtime and define Seam home folder.</para>
+ </listitem>
+ </itemizedlist>
+ <para>For that click on <emphasis>
+ <property moreinfo="none">Add</property>
+ </emphasis> button in the <property moreinfo="none">General</property> section. Notice that in this
+ wizard presented below you can create a Seam runtime only for that version which was
+ selected in the <link linkend="projectFacets">Project Facets</link> wizard (version 1.2
+ in our case).</para>
+
+ <figure float="0">
+ <title>Seam Runtime Creation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Select EAR or WAR deployment by checking a necessary radio button.</para>
+ </listitem>
+ <listitem>
+ <para>Select a <emphasis>
+ <property moreinfo="none">Database Type</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Seam Runtime Creation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_20.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>and then specify a <emphasis>
+ <property moreinfo="none">Connection profile</property>
+ </emphasis> appropriate for your database.</para>
+
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Connection Profile Options</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_21.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can edit chosen profile by using <emphasis>
+ <property moreinfo="none">Edit</property>
+ </emphasis> button or organise a new one by clicking on <emphasis>
+ <property moreinfo="none">New</property>
+ </emphasis> button and selecting necessary for you type of connection profile.</para>
+ <figure float="0">
+ <title>Connection Profile Selecting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On the other dialog you'll be asked to enter its name and description. And
+ then you should select a proper driver and adjust connection details. Press <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> to preview all the adjusted settings and complete the creation of the new
+ profile.</para>
+
+ <figure float="0">
+ <title>Connection Details</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_22.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The next block of settings in the Seam Facet wizard are describing a Database and a
+ connection to it.</para>
+ <para>In the <property moreinfo="none">Code Generation</property> section the wizard have already put the
+ names for your <property moreinfo="none">Session Bean</property>, <property moreinfo="none">Entity Bean</property> and
+ <property moreinfo="none">Test</property> packages. Of course, you can change them into the others
+ which you like.</para>
+
+ <figure float="0">
+ <title>Code Generation Section</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/create_new_seam/create_seam_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Click on <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> to generate a project.</para>
+
+ <para></para>
+ </section>
+</chapter>
+
+
+<chapter id="directory_str" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/directory_structure.xml" xreflabel="directory_str">
+ <?dbhtml filename="directory_structure.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>Eclipse</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Directory Structure of the Generated Project</title>
+
+ <para>In this chapter we describe where the Seam wizard puts the generated files for both EAR
+ and WAR deployments.</para>
+ <para>The Seam Project wizard generates projects like Eclipse WTP style in order to utilize
+ Eclipse WTP features and to have a correct classpath. To be more precise it generates one
+ project per artifact.</para>
+
+ <section id="WAR">
+ <title>WAR Deployment</title>
+
+ <para>The project layout for WAR projects is:</para>
+
+ <figure float="0">
+ <title>Project Layout for WAR projects</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/directory_structure/directory_structure_1.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>A WAR project can only use Seam JavaBean and JPA Entity bean components; it cannot use
+ EJB3 Session beans etc.</para>
+ <para>WAR projects are generated to enable Seam 1.2.1 war hotdeploy feature. Classes put
+ into <emphasis>
+ <property moreinfo="none">src/action</property>
+ </emphasis> will be deployed to <emphasis>
+ <property moreinfo="none">WEB-INF/dev</property>
+ </emphasis> from which Seam 1.2.1 automatically will perform hotdeploy of new
+ components.</para>
+ <note>
+ <title>Note:</title>
+ <para>Because of Eclipse WTP limits the hot deployed classes also existed in <emphasis>
+ <property moreinfo="none">WEB-INF/classes</property>, </emphasis> but since Seam gives <emphasis>
+ <property moreinfo="none">WEB-INF/dev</property>
+ </emphasis> precedence it will work.</para>
+ </note>
+
+ <para>Furthermore the Seam Project wizard generates a test project that is setup to run
+ <link linkend="testNG">TestNG</link> directly against the proper libraries and
+ server runtime libraries. When the TestNG plugin is installed you can just run your
+ tests via <emphasis><property moreinfo="none">Run As > TestNG Test</property>.</emphasis></para>
+ <para>In order to deploy WAR project on server, right-click on the project and select <emphasis>
+ <property moreinfo="none">Run As > Run on Server</property>.</emphasis> Studio will deploy
+ WAR project into one web application on server to <property moreinfo="none">deploy</property> folder.</para>
+
+ </section>
+
+ <section id="EAR">
+ <title>EAR Deployment</title>
+ <para>The project layout for EAR projects is:</para>
+
+ <figure float="0">
+ <title>Project Layout for WAR projects</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/directory_structure/directory_structure_2.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>An EAR project can use the whole range of Seam components, including EJB3 Session
+ beans.</para>
+ <para>In order to deploy EAR project on server, right-click on the project with
+ <property moreinfo="none">-ear</property> postfix and select <emphasis>
+ <property moreinfo="none">Run As > Run on Server</property>.</emphasis> Studio will take care
+ about all modules and deploy EAR project into one enterprise application on server to
+ <property moreinfo="none">deploy</property> folder. EAR application keeps <property moreinfo="none">ejb</property>
+ and <property moreinfo="none">war</property> modules of the EAR project.</para>
+ </section>
+
+ <section id="renaming_projects_folders">
+ <title>Renaming the Projects and Folders</title>
+
+ <para>If you need to rename one of the Seam Project artifacts
+ (<emphasis><project_name></emphasis>,
+ <emphasis><project_name>-test</emphasis>,
+ <emphasis><project_name>-test</emphasis> or
+ <emphasis><project_name>-ejb</emphasis>) or any entire folder like
+ <emphasis><project_name>/WebContent</emphasis>,
+ <emphasis><project_name>/ejbModule</emphasis>,
+ <emphasis><project_name>-test/test-src</emphasis>, or project name in
+ packages <emphasis>org.domain.<project_name>.session</emphasis>,
+ <emphasis>org.domain.<project_name>.entity</emphasis>, you can do this
+ by brining the context menu and navigating <emphasis>
+ <property moreinfo="none">Refactor > Rename...</property>
+ </emphasis> or just pressing <emphasis>
+ <property moreinfo="none">Shift + Alt + R</property>
+ </emphasis> under the chosen resource.</para>
+
+ <para>Use <emphasis>
+ <property moreinfo="none">Refactor > Move...</property>
+ </emphasis> (or <emphasis>
+ <property moreinfo="none">Shift + Alt + V</property>
+ </emphasis>), if you need to move
+ <emphasis><project_name>/WebContent</emphasis> folder,
+ <emphasis><project_name>/ejbModule</emphasis> folder or
+ <emphasis><project_name>/test-src</emphasis> folder in the other place
+ within the Project structure.</para>
+ </section>
+</chapter>
+
+
+<chapter id="menus_and_actions" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/seam_menus_and_actions.xml" xreflabel="menus_and_actions">
+ <?dbhtml filename="seam_menus_and_actions.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBDS</keyword>
+ <keyword>menus</keyword>
+ <keyword>actions</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Seam Menus and Actions</title>
+
+ <para>In this chapter we provide a description of Seam actions that are available from</para>
+ <itemizedlist>
+ <listitem>
+ <para>Menu bar</para>
+ </listitem>
+ <listitem>
+ <para>Toolbar</para>
+ </listitem>
+ <listitem>
+ <para>Context menus in views</para>
+ </listitem>
+ </itemizedlist>
+
+
+ <section id="file_menu">
+
+ <title>File Menu Actions</title>
+
+ <para>In a Seam perspective, by default there are the following actions in <emphasis>
+ <property moreinfo="none">File > New</property>
+ </emphasis> submenu</para>
+
+ <table>
+ <title>Seam Actions in the New Submenu</title>
+ <tgroup cols="2">
+ <colspec align="left" colnum="1" colwidth="1*"></colspec>
+ <colspec colnum="2" colwidth="4*"></colspec>
+
+ <thead>
+ <row>
+ <entry align="center">
+ <para>Name</para>
+ </entry>
+
+ <entry align="center">
+ <para>Function</para>
+ </entry>
+
+ </row>
+ </thead>
+
+ <tbody>
+
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Seam Web Project</property>
+ </para>
+
+ </entry>
+
+ <entry>
+ <para>Runs <link linkend="standaloneSeam">New Seam Project</link> wizard
+ for creating a new Seam project </para>
+ </entry>
+
+
+ </row>
+
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Seam Action</property>
+ </para>
+
+ </entry>
+
+ <entry>
+ <para>Runs <link linkend="seam_action">New Seam Action</link> wizard for
+ creating a new Seam action </para>
+ </entry>
+
+
+ </row>
+
+
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Seam Form</property>
+ </para>
+
+ </entry>
+
+ <entry>
+ <para>Runs <link linkend="seam_form">New Seam Form</link> wizard for
+ creating a new Seam form </para>
+ </entry>
+
+
+ </row>
+
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Seam Entity</property>
+ </para>
+
+ </entry>
+
+ <entry>
+ <para>Runs <link linkend="seam_entity">New Seam Entity</link> wizard for
+ creating a new Seam entity </para>
+ </entry>
+
+
+ </row>
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Seam Conversation</property>
+ </para>
+
+ </entry>
+
+ <entry>
+ <para>Runs <link linkend="seam_conversation">New Seam
+ Conversation</link> wizard for creating a new Seam conversation
+ </para>
+ </entry>
+
+
+
+ </row>
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Seam Generate Entities</property>
+ </para>
+
+ </entry>
+
+ <entry>
+ <para>Runs <link linkend="generate_entities">Generate Seam
+ Entities</link> wizard</para>
+ </entry>
+
+
+
+ </row>
+
+
+ </tbody>
+ </tgroup>
+ </table>
+
+
+ </section>
+
+ <section id="navigate_menu">
+ <title>Navigate Menu Actions</title>
+
+ <para>In the next sections we are going to describe Seam actions which can help you to
+ easily navigate through the source code.</para>
+
+ <section id="find_seam_ref_decl">
+
+ <title>Find Seam References/Declarations</title>
+
+ <para>To find EL expretions both in <emphasis>
+ <property moreinfo="none">.java</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">.xhtml</property>
+ </emphasis> files use Find Seam References/Declarations actions. For that, in the main menu bar click on <emphasis>
+ <property moreinfo="none">Search > Find Seam References</property>
+ </emphasis> or <emphasis><property moreinfo="none">Find Seam Declarations</property>.</emphasis>
+ </para>
+
+ <para>Look at the description of the actions in the table below.</para>
+
+ <table>
+ <title>Find Seam References/Declarations actions</title>
+ <tgroup cols="3">
+ <colspec align="left" colnum="1" colwidth="1*"></colspec>
+ <colspec colnum="2" colwidth="4*"></colspec>
+ <colspec colnum="3" colwidth="2*"></colspec>
+
+
+ <thead>
+ <row>
+ <entry align="center">
+ <para>Name</para>
+ </entry>
+
+ <entry align="center">
+ <para>Function</para>
+ </entry>
+
+ <entry align="center">
+ <para>Keyboard Shortcut</para>
+ </entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Find Seam References</property>
+ </para>
+ <para>
+ <property moreinfo="none">Find Seam Declarations</property>
+ </para>
+ </entry>
+
+ <entry>
+ <para>Find all references and declarations to the selected element.
+ It's available for EL expressions in both .java and .xhtml
+ files. Differs from normal Eclipse Find References/Declarations
+ by showing an EL or Seam references in the Search View. </para>
+ </entry>
+
+ <entry>
+ <para>Ctrl+G</para>
+ <para>Ctrl+Shift+G</para>
+ <para>also Ctrl + 1 for .java files</para>
+
+ </entry>
+
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+
+ <para>On the screenshot example below you could see that the search results are listed
+ in the
+ <property moreinfo="none">Search view</property>.
+ </para>
+
+ <figure float="0">
+ <title>Find Seam Declaration for "Identity"</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_menus_and_actions/menus_and_actions1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can also use Ctrl + 1 in .java files to activate the actions:</para>
+
+ <figure float="0">
+ <title>Find Seam References for "Identity"</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_menus_and_actions/menus_and_actions2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="open_seam_component">
+ <title>Open Seam Component</title>
+
+ <para>To open Seam Components click on <emphasis><property moreinfo="none">Navigate > Open Seam
+ Component</property></emphasis><diffmk:wrapper diffmk:change="changed"> in the main menu bar. This dialog is also available from toolbar
+ icon or with hot keys combination "Ctrl+Shift+Z ".</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Open Seam Components icon</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_menus_and_actions/menus_and_actions3_0.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the table below read a description about the dialog.</para>
+
+ <table>
+ <title>Open Seam Components Dialog</title>
+ <tgroup cols="3">
+ <colspec align="left" colnum="1" colwidth="1*"></colspec>
+ <colspec colnum="2" colwidth="4*"></colspec>
+ <colspec colnum="3" colwidth="2*"></colspec>
+
+
+ <thead>
+ <row>
+ <entry align="center">
+ <para>Name</para>
+ </entry>
+
+ <entry align="center">
+ <para>Function</para>
+ </entry>
+
+ <entry align="center">
+ <para>Keyboard Shortcut</para>
+ </entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+
+ <row>
+ <entry>
+ <para>
+ <property moreinfo="none">Open Seam Components</property>
+ </para>
+
+ </entry>
+
+ <entry>
+ <para>Brings up the Open Seam Component dialog to open a component
+ in the editor. The Open Seam Component selection dialog shows
+ all Seam components existing in the workspace. You can search
+ the components via their short, imported or full name.</para>
+ </entry>
+
+ <entry>
+ <para>Ctrl+Shift+Z</para>
+
+ </entry>
+
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Enter a name in the text field and see the results as it shown on screenshot: </para>
+
+ <figure float="0">
+ <title>Open Seam Components Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_menus_and_actions/menus_and_actions3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ </section>
+
+</chapter>
+
+
+<chapter id="seam_wizards" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/seam_wizards.xml" xreflabel="seam_wizards">
+ <?dbhtml filename="seam_wizards.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBDS</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Seam Wizards</title>
+
+ <para>This chapter introduces you with Seam Components.</para>
+ <para>All the Seam component generations options known from Seam-gen are available as wizards (with sensible auto-defaulting)
+ for creating various common Seam components:</para>
+
+ <itemizedlist>
+ <listitem><para><property moreinfo="none">Seam Action</property></para></listitem>
+ <listitem><para><property moreinfo="none">Seam Form</property></para></listitem>
+ <listitem><para><property moreinfo="none">Seam Entity</property></para></listitem>
+ <listitem><para><property moreinfo="none">Seam Conversation</property></para></listitem>
+ </itemizedlist>
+
+ <para>Go to <emphasis><property moreinfo="none">File > New</property></emphasis> and select the component wizard.</para>
+
+ <figure float="0">
+ <title>Seam Component Wizards</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The wizards create multiple resources and place it in the appropriate folders depending on your project structure (WAR or EAR).</para>
+ <para>Let's create a WAR project using the New Seam Project wizard.</para>
+
+ <figure float="0">
+ <title>Seam Project WAR Deployment</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>After the project is created you need deploy it on server.</para>
+
+
+ <section id="seam_action">
+
+ <title>New Seam Action</title>
+
+ <para>In this and following sections you can see example creating Seam Components.</para>
+ <para>To create a New Seam Action you should select a necessary project, type a name for <property moreinfo="none">Seam component</property>, <property moreinfo="none">POJO class</property>,
+ <property moreinfo="none">Method</property>, <property moreinfo="none">Page</property> and select a <property moreinfo="none">Package</property> using <emphasis><property moreinfo="none">Browse</property></emphasis> button.</para>
+
+ <figure float="0">
+ <title>New Seam Action Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can see the action page in <property moreinfo="none">WebContent</property> folder. Click on it to open in JBoss Tools HTML Editor.</para>
+
+ <figure float="0">
+ <title>Action Page in JBoss Tools HTML Editor.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_5.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <note>
+ <title>Note:</title>
+ <para>You don't need to restart the server to see how the action component works. Just use context menu
+ <emphasis><property moreinfo="none">Run As > Run On Server</property>.</emphasis></para>
+ </note>
+
+ <para>Action component was hot-deployed. Forms and Conversations will work the same way.</para>
+
+ <figure float="0">
+ <title>Action Component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+ </section>
+ <section id="seam_form">
+ <title>New Seam Form</title>
+
+ <para>Click on <property moreinfo="none">actionMethod</property> in the internal browser and add a form in your project using the New Seam Form wizard
+ <emphasis><property moreinfo="none">File > New > Seam Form</property>.</emphasis></para>
+ <para>Select a necessary project, type a name for <property moreinfo="none">Seam component</property>, <property moreinfo="none">POJO class</property>,
+ <property moreinfo="none">Method</property>, <property moreinfo="none">Page</property> and select a <property moreinfo="none">Package</property> using <emphasis><property moreinfo="none">Browse</property></emphasis> button.</para>
+
+ <figure float="0">
+ <title>New Seam Form Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The Form Page was created in <property moreinfo="none">WebContent</property> folder.</para>
+
+ <figure float="0">
+ <title>Form Page in JBoss Tools HTML Editor.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_8.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Deploy the form on server. Right click on Form Page, select <emphasis><property moreinfo="none">Run As > Run On Server</property>.</emphasis></para>
+
+ <figure float="0">
+ <title>Form Component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Form component was hot-deployed.</para>
+
+ </section>
+
+ <section id="seam_conversation">
+ <title>New Seam Conversation</title>
+
+ <para>Enter some value in the text field (e.g. <property moreinfo="none">value1</property>) and click on <property moreinfo="none">formMethod</property>.</para>
+ <para>Add a conversation using the New Seam Conversation wizard
+ <emphasis><property moreinfo="none">File > New > Seam Form</property>.</emphasis></para>
+ <para>You should select a necessary project, type a name for <property moreinfo="none">Seam component</property>, <property moreinfo="none">POJO class</property>,
+ <property moreinfo="none">Method</property>, <property moreinfo="none">Page</property> and select a <property moreinfo="none">Package</property> using <emphasis><property moreinfo="none">Browse</property></emphasis> button.</para>
+
+
+ <figure float="0">
+ <title>New Seam Conversation Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Conversation page was created in <property moreinfo="none">WebContent</property> folder.</para>
+
+ <figure float="0">
+ <title>Conversation Page in JBoss Tools HTML Editor.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_11.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Right click on Conversation page, select <emphasis><property moreinfo="none">Run As > Run On Server</property>.</emphasis></para>
+
+ <figure float="0">
+ <title>Conversation Component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Conversation component was hot-deployed.</para>
+ <para>Click on <property moreinfo="none">Begin</property> and <property moreinfo="none">Increment</property> buttons to check the conversation functionality.</para>
+
+ </section>
+
+
+ <section id="seam_entity">
+ <title>New Seam Entity</title>
+
+ <para>Entities cannot be hot-deployed, so we need to stop the server.</para>
+ <para>Create an Entity using the New Entity wizard <emphasis><property moreinfo="none">File > New > Seam Entity</property>.</emphasis> </para>
+
+ <para>You should select a necessary project, type a name for <property moreinfo="none">Entity class</property>, select a
+ <property moreinfo="none">Package</property> using <emphasis><property moreinfo="none">Browse</property></emphasis> button, type a name for <property moreinfo="none">Master Page</property> and <property moreinfo="none">Page</property>.</para>
+
+ <figure float="0">
+ <title>New Seam Entity Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The Master Page and the Entity were created in <property moreinfo="none">WebContent</property> folder.</para>
+
+ <figure float="0">
+ <title>Master Page in JBoss Tools HTML Editor.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_14.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The Entity page is:</para>
+
+ <figure float="0">
+ <title>Entity Page in JBoss Tools HTML Editor.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_15.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Run the Entity page on server. This is what you get:</para>
+
+ <figure float="0">
+ <title>Customer Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_16.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para><diffmk:wrapper diffmk:change="changed">Let's create two customers </diffmk:wrapper><property moreinfo="none">c1</property> and <property moreinfo="none">c2</property>. Enter the name in the text field and press the <property moreinfo="none">Save</property> button.
+ Customer should be successfully created. Press <property moreinfo="none">Done</property>. Do the same for <property moreinfo="none">c2</property> customer. The result should be:</para>
+
+ <figure float="0">
+ <title>Two Customers Are Created</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_wizards/seam_wizards_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ </chapter>
+
+
+<chapter id="generate_entities" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/generate_entities.xml" xreflabel="generate_entities">
+ <?dbhtml filename="generate_entities.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBDS</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Seam Generate Entities</title>
+
+ <para>The main purpose of this chapter is to tell you about Seam Generate Entities.</para>
+ <para>Generate Entities is available directly from within Eclipse using Hibernate Tools plugin for the standard seam-gen generation.</para>
+ <para>Generate Entities generates a set of CRUD Seam components and web pages based on existing tables in a database or on existing entities in your application.</para>
+
+
+ <figure float="0">
+ <title>Generate Seam Entities Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/generate_entities/generate_entities1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the Generate Seam Entities wizard there are two generation modes: Reverse Engineer from database
+ and Use existing entities.</para>
+
+ <para>The <property moreinfo="none">Reverse Engineer from database</property> mode can be described in four steps:</para>
+ <orderedlist continuation="restarts" inheritnum="ignore">
+ <listitem><para>The wizard gets in database, extracts the tables and
+ their connections</para></listitem>
+ <listitem><para>On basis of this metainfomation the Entity classes are generated into
+ <property moreinfo="none">org.domain.project.entity</property> package</para></listitem>
+ <listitem><para>For the entities from step 2 the classes <property moreinfo="none">EntityList</property> and <property moreinfo="none">EntityHome</property> are generated
+ into <property moreinfo="none">org.domain.project.session</property> package</para></listitem>
+ <listitem><para>The xhtml pages are generated.</para></listitem>
+ </orderedlist>
+ <para>
+ Checking the <property moreinfo="none">Use existing entities</property> mode the wizard executes only 3 and 4 steps. It generates missing classes and
+ xhtml pages.
+ </para>
+
+ <para>Read the <link linkend="crud_database_application">Generate a CRUD Database Application</link> chapter in order to see how the <property moreinfo="none">Generate Seam Entities</property> wizard can be used.</para>
+
+
+ </chapter>
+
+
+
+<chapter id="seam_editors" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/seam_editors.xml" xreflabel="seam_editors">
+ <?dbhtml filename="seam_editors.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBDS</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Seam Editors Features</title>
+
+ <section id="ContentAssist">
+
+ <title>Content Assist</title>
+
+ <para>In this chapter you know what Seam Editors Features are and how to work with them. </para>
+ <para><property moreinfo="none">Content Assist</property> (ctrl + space) is available when using expression
+ language in:</para>
+ <itemizedlist>
+ <listitem>
+ <para>JSP</para>
+ </listitem>
+ <listitem>
+ <para>XHTML</para>
+ </listitem>
+ <listitem>
+ <para>XML</para>
+ </listitem>
+ <listitem>
+ <para>JAVA</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The Seam components are available in content assist.</para>
+
+ <figure float="0">
+ <title>Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_editors/seam_editors_1.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <note>
+ <title>Note:</title>
+
+ <para>To get Code Assist available for an externally generated and imported project, don't forget to enable Seam
+ features and configure Seam Settings in <link linkend="project_pref">Project Preferences</link>.</para>
+ </note>
+ </section>
+
+ <section id="OpenOn">
+ <title>OpenOn</title>
+
+ <para><property moreinfo="none">OpenOn</property> let's you easily navigate through your project without
+ using the Package Explorer or Project Explorer. After pressing ctrl + left click (or
+ just F3) you will see a corresponding method or class.</para>
+
+ <figure float="0">
+ <title>OpenOn</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_editors/seam_editors_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="SeamValidation">
+ <title>Seam Validation</title>
+
+ <para>Validation of various possible problematic definitions is implemented for Seam
+ applications.</para>
+
+ <para>If an issue is found it will be showed in the standard <property moreinfo="none">Problems
+ View</property>.</para>
+
+ <figure float="0">
+ <title>Seam Validation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_editors/seam_editors_6.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>In the preferences page for Seam Validator you can see and modify the validator
+ behavior. Go to <emphasis>
+ <property moreinfo="none">Window > Preferences > JBoss Tools > Web > Seam > Validator</property>
+ </emphasis> and select the severity level for the optional Seam Validator problem.</para>
+
+ <figure float="0">
+ <title>Seam Validator Preferences</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_editors/seam_editors_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On WTP projects validation are enabled by default and thus executed automatically, but
+ on normal Java projects you will have to go and add the Validation builder to your
+ project . It is available in the properties of your project under
+ <property moreinfo="none">Validation</property>. The validations can be run manually by clicking
+ <property moreinfo="none">Validate</property> via the context menu on your project which will
+ execute all the active WTP validations.</para>
+ </section>
+
+ <section id="ComponentsEditor">
+ <title>Structured components.xml Editor</title>
+
+ <para>When editing <property moreinfo="none">components.xml</property> a structured tree editor is available
+ in addition to pure source editing. It has a graphical view (Tree tab) and source
+ (Source tab).</para>
+
+ <figure float="0">
+ <title>component.xml Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_editors/seam_editors_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <note>
+ <title>Note:</title>
+
+ <para>You can view and edit <property moreinfo="none">components.xml</property> and other xml files
+ directly in the Project Explorer and Properties sheet without opening the
+ components.xml editor.</para>
+ </note>
+ <figure float="0">
+ <title>component.xml Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_editors/seam_editors_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+</chapter>
+
+
+<chapter id="seam_view" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/seam_view.xml" xreflabel="seam_view">
+ <?dbhtml filename="seam_view.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBDS</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Seam Views</title>
+
+ <section>
+ <title>Seam Components View</title>
+
+ <para>This chapter introduces you with Seam Components View.</para>
+ <para>The <property moreinfo="none">Seam Components View</property> is available from Seam perspective. It provides a list of seam components found in a project.</para>
+
+ <figure float="0">
+ <title>Seam Components View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The Seam Components View can show a components default scope in two ways:</para>
+
+ <itemizedlist>
+ <listitem><para>as labels on each component (click on the triangular symbol at the top of the Seam Components View page and select <emphasis><property moreinfo="none">Scope Presentation > Label</property></emphasis>)</para></listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>As label</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem><para>as a node per scope where the components are grouped under a node representing its default scope.</para></listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>As node</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The Seam Packages can be presented in two ways:</para>
+
+ <itemizedlist>
+ <listitem><para>Flat</para></listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Flat Presentation of Seam Packages</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem><para>Hierarchical</para></listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Hierarchical Presentation of Seam Packages</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The Seam Component View can be filtered by choosing <property moreinfo="none">Customize View</property>.</para>
+
+ <figure float="0">
+ <title>Customize View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Select the <emphasis><property moreinfo="none">Seam Components from Libraries</property></emphasis> under the Filters tab.
+ This will make the view ignore components defined in jars. This will hide the many built-in Seam components and leave only those that are actually defined in the project or have been actively configured via components.xml. Therefore, deselecting the filter will show you all available components.</para>
+ <para>Selecting the <emphasis><property moreinfo="none">Seam Components from Referenced Projects</property></emphasis> will hide the components that dependent on other project.</para>
+
+ <figure float="0">
+ <title>Available Custimozations</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section>
+ <title>Project Explorer integration</title>
+
+ <para>If you don't like to have a view for every piece of information in Eclipse, the content of the Seam Components view is also available as a node in the built-in Project Explorer (not Package Explorer!) view in Eclipse.</para>
+
+ <figure float="0">
+ <title>Seam Components in Project Explorer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_view/seam_view_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ </chapter>
+
+
+<chapter id="seam_preferences" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/seam_preferences.xml" xreflabel="seam_preferences">
+ <!-- mark as new -->
+ <?dbhtml filename="seam_preferences.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Seam</keyword>
+ <keyword>Preferences</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Seam Preferences</title>
+
+ <para>In this chapter you get to know how Seam preferences can be modified during the
+ development process.</para>
+
+ <section id="gen_pref">
+ <title>General Preferences</title>
+
+ <para>Seam preferences can be set using the Seam preference page. Click on
+ <emphasis><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Window > Preferences > JBoss Tools > Web >
+ Seam</diffmk:wrapper></property>.</emphasis></para>
+
+ <para>On this page you can manage the Seam Runtime. Use the appropriate buttons to
+ <property moreinfo="none">Add</property> more runtimes or to <property moreinfo="none">Remove</property> those that
+ are not needed.</para>
+
+ <figure float="0">
+ <title>Seam Preferences Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_preferences/seam_preferences1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Clicking on <property moreinfo="none">Edit</property><diffmk:wrapper diffmk:change="changed"> button you get the form where you can change the
+ path of Seam runtime home folder, modify name and version. Press
+ </diffmk:wrapper><property moreinfo="none">Finish</property> to apply the changes.</para>
+
+ <figure float="0">
+ <title>Edit Seam Runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_preferences/seam_preferences1_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <section id="validator_pref">
+
+ <title>Validator Preferences</title>
+
+ <para>Seam preference page includes a subsection <property moreinfo="none">Validator</property>. See
+ <emphasis><property moreinfo="none">Window > Preferences > JBoss Tools > Web > Seam >
+ Validator</property>.</emphasis></para>
+ <para>On this page you can choose a severity level for the various Seam validator
+ problems. For example, if you want to ignore the case when component name is
+ duplicated expand the <property moreinfo="none">Components</property> node and select
+ <property moreinfo="none">Ignore</property> next to <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Duplicate component
+ name</diffmk:wrapper></property>. After that you won't see the error.</para>
+
+
+ <figure float="0">
+ <title>Seam Validator Preference Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_preferences/seam_preferences1_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the upper right corner of the page there is a <property moreinfo="none">Configure Project
+ Specific</property> link. Clicking on it you get the form where you can choose a
+ project for specific setting. Project specific configuration allows you to have
+ different validator settings for each project. Check the <property moreinfo="none">Show only
+ projects with project specific settings</property> if you want to see the
+ projects that have been already set. Click on <property moreinfo="none">Ok</property>.</para>
+
+ <figure float="0">
+ <title>Project Specific Configuration</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_preferences/seam_preferences1_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You get the validator properties page for chosen project. Check the
+ <property moreinfo="none">Enable project specific settings</property> to be able to change the
+ settings.</para>
+
+ <note>
+ <title>Note:</title>
+ <para>You can open the same page by right clicking on the needed project in Package
+ Explorer, then <emphasis><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Properties > Seam
+ Validator</diffmk:wrapper></property>.</emphasis></para>
+ </note>
+
+ <figure float="0">
+ <title>Validator Properties Page for Chosen Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_preferences/seam_preferences1_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ </section>
+ </section>
+
+ <section id="project_pref">
+ <title>Project Preferences</title>
+
+ <para>Once Seam project is created you can modify its settings. Right click on Seam project
+ in Project Explorer and select <emphasis><property moreinfo="none">Properties > Seam
+ Settings</property>.</emphasis></para>
+ <para>This project properties page allows you to have a flexible project layout. It means
+ that you are not restricted with a specific project structure. You can use the Seam
+ wizards (New Action, Form, Entity, etc.) on Maven, command line seam-gen or your own
+ project structure. </para>
+
+ <figure float="0">
+ <title>Properties for Seam Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_preferences/seam_preferences2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <tip>
+ <title>Tip:</title>
+ <para><diffmk:wrapper diffmk:change="changed">The wizard doesn't allow the renaming of the artifacts listed in the Seam
+ Settings. It's possible to do in the </diffmk:wrapper><property moreinfo="none">Package Explorer</property><diffmk:wrapper diffmk:change="changed">.
+ See </diffmk:wrapper><link linkend="renaming_projects_folders"><diffmk:wrapper diffmk:change="changed">Renaming the Projects and
+ Folders</diffmk:wrapper></link>.</para>
+ </tip>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Also notice, you are not required to use the </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">New Seam Project wizard</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">
+ to benefit from Seam artifact wizards. You can just enable Seam on your existing project
+ by checking </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Seam Support</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> and targeting to Seam Runtime, and then
+ configure the folders as you want.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Properties for Seam Project</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/seam_preferences/seam_preferences2_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <tip diffmk:change="added">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Tip:</diffmk:wrapper></title>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">On the figure above fields for configuring Seam artifacts are dimmed because Seam
+ Runtime is not selected.</diffmk:wrapper></para>
+ </tip>
+
+ <para>In Seam Wizards (New Action, Form, Entity, Conversation, Generate Entities) you can
+ get a quick access to project settings using the <property moreinfo="none">Settings</property> link in
+ the upper right corner of each wizard.</para>
+
+ <figure float="0">
+ <title>Settings Link</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/seam_preferences/seam_preferences2_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ </section>
+
+</chapter>
+
+
+<chapter id="crud_database_application" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/crud_database_application.xml" xreflabel="crud_database_application">
+ <?dbhtml filename="crud_database_application.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Java</keyword>
+ <keyword>CRUD</keyword>
+ <keyword>Database Application</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Generate a CRUD Database Application</title>
+ <section>
+ <title>What is CRUD?</title>
+ <para>
+ <property moreinfo="none">CRUD</property> is an acronym for the four basic types of SQL commands: <emphasis>
+ <property moreinfo="none">Create</property>
+ </emphasis>, <emphasis>
+ <property moreinfo="none">Read</property>
+ </emphasis>, <emphasis>
+ <property moreinfo="none">Update</property>
+ </emphasis>, <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis>. Most applications have some kind of <property moreinfo="none">CRUD</property><diffmk:wrapper diffmk:change="changed">
+ functionality, and we can assume that every programmer had to deal with
+ </diffmk:wrapper><property moreinfo="none">CRUD</property> at some point. A <property moreinfo="none">CRUD</property><diffmk:wrapper diffmk:change="changed"> application is
+ one that uses forms to get data into and out of a database. </diffmk:wrapper></para>
+ <para> In the next section we will create <link linkend="intro">Seam</link> Web application,
+ connect it to the <ulink url="http://www.hsqldb.org/">HSQL</ulink> database and add
+ <property moreinfo="none">CRUD</property> support. </para>
+ </section>
+
+ <section>
+ <title>How to create the CRUD Database Application with Seam</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>First, you should <ulink url="http://docs.jboss.org/tools/resources/">download</ulink> a database and start it by running <emphasis>
+ <property moreinfo="none">./runDBServer.sh</property>
+ </emphasis> or <emphasis>
+ <property moreinfo="none">runDBServer.bat</property>
+ </emphasis> from the database directory.</para>
+ </listitem>
+ <listitem>
+ <para>Create a new Seam Web Project using <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">New Seam Project
+ wizard</diffmk:wrapper></property> or main menu <emphasis><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">File > New > Seam Web
+ Project</diffmk:wrapper></property>.</emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Seam Web Project Creation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_01.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Name your project as <emphasis>
+ <property moreinfo="none">crudapp</property>, </emphasis> specify Target Runtime, Server and
+ Seam Runtime configuration. Then press <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> and follow the next wizard steps keeping default settings.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>New Seam Project Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_02.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <tip>
+ <title>Tip:</title>
+ <para>Please have a look <link linkend="create_seam">here</link> how to create Target
+ Runtime and Seam Runtime in order to get started creating, running, and debugging
+ J2EE applications.</para>
+ </tip>
+
+ <itemizedlist>
+ <listitem>
+ <para>On <emphasis>
+ <property moreinfo="none">Seam Facet</property>
+ </emphasis> page click <emphasis>
+ <property moreinfo="none">New...</property>
+ </emphasis> next to the <property moreinfo="none">Connection profile</property> section to
+ create a new <property moreinfo="none">Connection profile</property>.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Seam Facet page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_03.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>On <property moreinfo="none">New Connection Profile</property> dialog select the <emphasis>
+ <property moreinfo="none">HSQLDB</property>
+ </emphasis> connection profile type, name it <emphasis>
+ <property moreinfo="none">cruddb</property>
+ </emphasis> and click <emphasis>
+ <property moreinfo="none">Next</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>New JDBC Connection Profile</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_04.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>On the next page click the round icon next to the <emphasis>
+ <property moreinfo="none">Drivers</property>
+ </emphasis> field to select a database driver.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>New JDBC Connection Profile Database Driver</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_06.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Now you should see the <property moreinfo="none">New Driver Definition</property> dialog. On
+ the first tab select the <emphasis>
+ <property moreinfo="none">HSQLDB JBDC Driver</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis> Underneath in the <emphasis>
+ <property moreinfo="none">Driver name</property>
+ </emphasis> field you can change its name if you need.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Database Driver Type</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_07.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">You may notice the note on the previous figure. It prompts that you should
+ specify the driver of the type you pointed. Set the location of the driver by
+ switching to the next tab and press </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Add JAR/Zip</property>
+ </emphasis> button.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Driver Definition</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_09.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>On the <property moreinfo="none">Properties</property> tab set the
+ <emphasis><property moreinfo="none">Connection URL</property>,</emphasis>
+ <emphasis>
+ <property moreinfo="none">Database Name</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">User ID</property>
+ </emphasis> and click <emphasis>
+ <property moreinfo="none">OK</property><diffmk:wrapper diffmk:change="changed">. </diffmk:wrapper></emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Driver Definitions Properties</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>After clicking <emphasis>
+ <property moreinfo="none">OK</property>
+ </emphasis> to submit the newly created driver you can observe and if you need
+ edit all specified connection details.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Driver and Connection Details</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Now click <emphasis>
+ <property moreinfo="none">Test Connection</property>
+ </emphasis> to be sure that connection can be established.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>JDBC Connection is OK</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Validate <emphasis>
+ <property moreinfo="none">JDBC Connection profile</property>
+ </emphasis> settings and press <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> or <emphasis>
+ <property moreinfo="none">Back</property>
+ </emphasis> if something is wrong.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Validate JDBC Connection settings</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>After clicking <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> two projects <emphasis>
+ <property moreinfo="none">crudapp</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">crudapp-test</property>
+ </emphasis> will be created.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>CRUDAPP Seam Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">Have a look at the created projects. You can expand
+ </diffmk:wrapper><property moreinfo="none">WEB_CONTENT</property><diffmk:wrapper diffmk:change="changed"> folder and open
+ </diffmk:wrapper><property moreinfo="none">home.xhtml</property><diffmk:wrapper diffmk:change="changed"> or </diffmk:wrapper><property moreinfo="none">login.xhtml</property><diffmk:wrapper diffmk:change="changed"> with
+ </diffmk:wrapper><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">JBoss Visual Editor</diffmk:wrapper></property>.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title><diffmk:wrapper diffmk:change="changed">login.xhtml in VPE</diffmk:wrapper></title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Switch to <property moreinfo="none">Database Development</property> perspective with <emphasis>
+ <property moreinfo="none">Window->Open Perspective->Other...</property>
+ </emphasis> and connect to the <emphasis>
+ <property moreinfo="none">cruddb</property>
+ </emphasis> database.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Connecting to the CRUDDB database</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_16.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Expand <emphasis>
+ <property moreinfo="none">cruddb</property>
+ </emphasis> nodes to view its <emphasis>
+ <property moreinfo="none">Schemas</property>, </emphasis>
+ <emphasis>
+ <property moreinfo="none">Tables</property>, </emphasis>
+ <emphasis>
+ <property moreinfo="none">Columns</property>
+ </emphasis> etc.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>CRUDDB Database</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_17.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Switch back to the <property moreinfo="none">Seam</property> perspective. From the toolbar
+ select <emphasis>
+ <property moreinfo="none">New->Seam Generate Entities</property>
+ </emphasis> to create a set of <property moreinfo="none">CRUD</property><diffmk:wrapper diffmk:change="changed"> Seam components and web
+ pages based on existing tables in the database. On the first page of </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Generate Seam Entities</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> wizard keep everything by default and press </diffmk:wrapper><emphasis>
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Next</diffmk:wrapper></property>. </emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Generate Seam Entities</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_18.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="added">Click </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Refresh</diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> to display all the tables from the
+ database.</diffmk:wrapper></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Dialog for Selecting Tables</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/crud_database_application/crud_database_application_18a.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist diffmk:change="added">
+ <listitem diffmk:change="added">
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Now you can filter the tables. Use the </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Include</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> button to include only necessary ones.</diffmk:wrapper></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Selecting Tables</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/crud_database_application/crud_database_application_18b.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist diffmk:change="added">
+ <listitem diffmk:change="added">
+ <para diffmk:change="added">Under <emphasis>
+ <property moreinfo="none">WebContent</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> folder you can find all generated </diffmk:wrapper><property moreinfo="none">xhtml</property>
+ files:</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Entities Web Pages</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_19.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>And under <emphasis>
+ <property moreinfo="none">src</property>
+ </emphasis> folder java classes are created.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Entities Java Classes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_20.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Switch to <property moreinfo="none">Hibernate</property> perspective with <emphasis>
+ <property moreinfo="none">Window->Open Perspective->Other...</property><diffmk:wrapper diffmk:change="changed">.
+ </diffmk:wrapper></emphasis><diffmk:wrapper diffmk:change="changed"> On </diffmk:wrapper><property moreinfo="none">Hibernate Configurations</property> view expand the <emphasis>
+ <property moreinfo="none">crudapp</property>
+ </emphasis> configuration. Right click on <property moreinfo="none">Customers</property> and
+ select <emphasis>
+ <property moreinfo="none">Open Mapping Diagram</property>
+ </emphasis> from the popup menu.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Hibernate Configurations View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_21.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">Observe the </diffmk:wrapper><property moreinfo="none">Mapping Diagram</property><diffmk:wrapper diffmk:change="added"> opened in the editor. Here
+ you can see the relations between models and database tables. For better
+ navigating on the diagram use the </diffmk:wrapper><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Outline view</diffmk:wrapper></property>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Mapping Diagram</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_22.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="added">For example, select </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Customers</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> entity, right click and
+ select </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Open Source File</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">.
+ </diffmk:wrapper></emphasis><diffmk:wrapper diffmk:change="added"> This will open the </diffmk:wrapper><property moreinfo="none">Customers.java</property><diffmk:wrapper diffmk:change="added"> file in the
+ java editor. You can also do this by right-clicking on the same entity on the
+ </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Mapping Diagram</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Entity class from Mapping Diagram</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_database_application/crud_database_application_23.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">So far, you are ready to deploy your application to JBoss Application Server. This
+ is described in the next chapter.</diffmk:wrapper></para>
+
+ </section>
+
+</chapter>
+
+
+<chapter diffmk:change="added" id="crud_application_walkthrough" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/crud_application_walkthrough.xml" xreflabel="crud_application_walkthrough">
+ <?dbhtml filename="crud_application_walkthrough.html"?>
+ <chapterinfo diffmk:change="added">
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Java</keyword>
+ <keyword>CRUD</keyword>
+ <keyword>JBoss AS</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>The CRUD Application Walkthrough</title>
+ <para><diffmk:wrapper diffmk:change="changed">After you familiarized oneself with example of creating the CRUD Database Application with
+ Seam, you can read this charter.</diffmk:wrapper></para>
+ <section>
+ <title>Using CRUD Application</title>
+ <para>To run your CRUD Application you should do the following steps:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Run a project on the Server. </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>On <emphasis>
+ <property moreinfo="none">Package Explorer View </property>
+ </emphasis> right click on the <emphasis>
+ <property moreinfo="none">crudapp</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> project, select </diffmk:wrapper><emphasis><property moreinfo="none"><diffmk:wrapper diffmk:change="changed"> Run As > Run on
+ Server</diffmk:wrapper></property>.</emphasis></para>
+
+ <figure float="0">
+ <title>Run Project on Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_application_walkthrough/crud_application_walkthrough_1.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Select a Server and click <property moreinfo="none">Finish</property></para>
+
+ <figure float="0">
+ <title>Select a Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_application_walkthrough/crud_application_walkthrough_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Home page of the <emphasis>
+ <property moreinfo="none">crudapp</property>
+ </emphasis> project should appear in <emphasis>
+ <property moreinfo="none">Web Browser</property>
+ </emphasis>.</para>
+ <figure float="0">
+ <title>Home page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_application_walkthrough/crud_application_walkthrough_4.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">After that you can use CRUD application with
+ </diffmk:wrapper><property moreinfo="none">"employee"</property> database.</para>
+
+ <para><diffmk:wrapper diffmk:change="changed">You can use internal JBDS Web Browser or your external Web Browser with the same link
+ (</diffmk:wrapper><ulink url="http://localhost:8080/crudapp/home.seam">http://localhost:8080/crudapp/home.seam</ulink>). </para>
+ <para>Click on the <emphasis>
+ <property moreinfo="none">Employees List</property>
+ </emphasis> link and observe that data from <emphasis>
+ <property moreinfo="none">employee</property>
+ </emphasis> database is displayed.</para>
+ <figure float="0">
+ <title>Employees List</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_application_walkthrough/crud_application_walkthrough_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Use <property moreinfo="none">Employees search parameters</property><diffmk:wrapper diffmk:change="changed"> fields to filter the selected
+ list.</diffmk:wrapper></para>
+
+ <para> Press <property moreinfo="none">Select</property> opposite one of employees.</para>
+ <figure float="0">
+ <title>Employee details</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_application_walkthrough/crud_application_walkthrough_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para> Press <property moreinfo="none">Edit</property> to edit employee fields.</para>
+ <para> Enter <emphasis>
+ <property moreinfo="none">Login</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">Password</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> to login. (Use
+ </diffmk:wrapper><emphasis>"crudapp-user"/"secret"</emphasis><diffmk:wrapper diffmk:change="changed"> for
+ example)</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Login page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_application_walkthrough/crud_application_walkthrough_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <figure float="0">
+ <title>Edit Employee</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/crud_application_walkthrough/crud_application_walkthrough_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> Fill in <emphasis>
+ <property moreinfo="none">firstname</property>
+ </emphasis> and press <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Save</diffmk:wrapper></property>.</para>
+ <para> Database will be updated.</para>
+ </section>
+
+
+
+
+
+ <!-- TODO: drools used in this section is not available for eclipse .3.3 &business_application; -->
+
+</chapter>
+<chapter id="testNG" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/seam/docs/reference/en/modules/testng.xml" xreflabel="testNG">
+ <?dbhtml filename="testNG.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>JBDS</keyword>
+ <keyword>testNG</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Using TestNG project</title>
+ <para>With the help this chapter you will get to know with TestNG.</para>
+ <section>
+ <title>What is TestNG?</title>
+ <para><property moreinfo="none">TestNG</property> ("Testing, the Next Generation") is a
+ Java unit testing framework that aims to overcome many limitations of JUnit. TestNG
+ introduces some new functionalities that make it more powerful and easier to use, such
+ as:</para>
+ <itemizedlist>
+ <listitem>
+ <para>JDK 5 Annotations (JDK 1.4 is also supported with JavaDoc annotations)</para>
+ </listitem>
+ <listitem>
+ <para>Flexible test configuration</para>
+ </listitem>
+ <listitem>
+ <para>Support for data-driven testing (with @DataProvider)</para>
+ </listitem>
+ <listitem>
+ <para>Support for parameters</para>
+ </listitem>
+ <listitem>
+ <para>Allows distribution of tests on slave machines</para>
+ </listitem>
+ <listitem>
+ <para>Powerful execution model (no more TestSuite)</para>
+ </listitem>
+ <listitem>
+ <para>Supported by a variety of tools and plug-ins (Eclipse, IDEA, Maven,
+ etc...)</para>
+ </listitem>
+ <listitem>
+ <para>Embeds BeanShell for further flexibility</para>
+ </listitem>
+ <listitem>
+ <para>Default JDK functions for runtime and logging (no dependencies)</para>
+ </listitem>
+ <listitem>
+ <para>Dependent methods for application server testing</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>More information can be found on home page: <ulink url="http://testng.org">www.testng.org</ulink></para>
+ </section>
+ <section id="OtherRelevantResourcesOnTheTopic5">
+ <?dbhtml filename="OtherRelevantResourcesOnTheTopic5.html"?>
+ <title>Other relevant resources on the topic</title>
+ <para>
+ <ulink url="http://www.artima.com/lejava/articles/testng.html">Next-Generation Testing
+ with TestNG (An Interview with Cedric Beust)</ulink>
+ </para>
+ <para>
+ <ulink url="http://www.javaworld.com/javaworld/jw-04-2005/jw-0404-testng.html">TestNG:
+ The next generation of unit testing</ulink>
+ </para>
+ <para>
+ <ulink url="http://dev2dev.bea.com/pub/a/2006/09/testng-categorization.html">Test
+ Categorization Techniques with TestNG</ulink>
+ </para>
+ <para>
+ <ulink url="http://www-128.ibm.com/developerworks/java/library/j-testng/">TestNG makes
+ Java unit testing a breeze</ulink>
+ </para>
+ <para>
+ <ulink url="http://www-128.ibm.com/developerworks/java/library/j-cq08296/index.html">In
+ pursuit of code quality: JUnit 4 vs. TestNG</ulink>
+ </para>
+ </section>
+ <section>
+ <title>How to use the generated Seam-test project to run Seam tests?</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Create a new Seam Web Project with EAR deployment using the New Seam Project
+ wizard.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <listitem>
+ <para>After a project is created you will have the generated Seam-test project that
+ is setup to run TestNG directly against the proper libraries and server runtime
+ libraries.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Seam-test Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Add Seam Action to your project via <emphasis><property moreinfo="none">File > New > Seam
+ Action</property>.</emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Seam Action Creation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Fill out the wizard fields. New Seam Action wizard will create resources and
+ place them in the appropriate folders dependent on EAR project structure.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>New Seam Action Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>When Action is created you will see <property moreinfo="none">actionPage.xhtml</property> in
+ Package Explorer view. <property moreinfo="none">ActionBean.java</property> will be
+ automatically opened in Java Editor.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Created Action</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_8.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <itemizedlist>
+ <listitem>
+ <para>Select <property moreinfo="none">ActionLocalTest.xml</property> in Seam-test project and run
+ the test with right click <emphasis><property moreinfo="none">Run As > TestNG
+ Suite</property>.</emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Running TestNG</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The test process will start and its output will be written in Console View.</para>
+
+ <figure float="0">
+ <title>Test is Finished</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_10.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <itemizedlist>
+ <listitem>
+ <para>After running TestNG you will have the test results in <emphasis>
+ <property moreinfo="none">test-output</property>
+ </emphasis> folder in Seam-test project (press F5 to refresh the Package
+ Explorer view). Open <property moreinfo="none">index.html</property> file with Web Browser or
+ simply use the TestNG view.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The below view shows a successful run of the test.</para>
+
+ <figure float="0">
+ <title>Viewing the Test Results</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_11.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>You can see the test results in Web Browser.</para>
+
+ <figure float="0">
+ <title>Test Results in Browser</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_12.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>After clicking on <emphasis>
+ <property moreinfo="none">ActionLocal Tests</property>
+ </emphasis> link you will see the Results for ActionLocal Tests.</para>
+
+ <figure float="0">
+ <title>Test Information</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_13.png" scale="70"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Select a result on the left-hand pane and its details will be displayed on the
+ right-hand one.</para>
+
+ <figure float="0">
+ <title>ActionLocal Test Details</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/testng/testng_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Thus with Seam tooling you can easily take advantage of TestNG framework. As you can
+ see, it generates its own TestNG project as a separate module within which you can
+ easily monitor the tests execution and their output.</para>
+
+ <para>In conclusion, the main goal of this document is to get you know with a full featureset
+ that <property moreinfo="none">JBoss Tools</property> provides to support Seam development. Thus if you have
+ some questions, comments or suggestions on the topic, please fell free to ask in the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=201">JBoss
+ Tools Forum</ulink>. You can also influence on how you want to see JBoss Tools docs in
+ future leaving your vote on our page <ulink url="http://wiki.jboss.org/wiki/JBossToolsDocsFuture">here</ulink>. </para>
+
+ <para>A set of movies on Seam tooling is available <ulink url="http://docs.jboss.org/tools/movies">here</ulink>.</para>
+ </section>
+</chapter>
+</book>
Modified: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_application_walkthrough.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_application_walkthrough.xml 2008-12-19 20:12:52 UTC (rev 12783)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_application_walkthrough.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="crud_application_walkthrough" xreflabel="crud_application_walkthrough">
+<chapter id="crud_application_walkthrough" xreflabel="crud_application_walkthrough" role="updated">
<?dbhtml filename="crud_application_walkthrough.html"?>
<chapterinfo>
<keywordset>
@@ -13,35 +13,10 @@
<title>The CRUD Application Walkthrough</title>
<para>After you familiarized oneself with example of creating the CRUD Database Application with
Seam, you can read this charter.</para>
- <section>
+ <section role="updated">
<title>Using CRUD Application</title>
<para>To run your CRUD Application you should do the following steps:</para>
- <itemizedlist>
- <listitem>
- <para>Start JBoss Application Server if it was not started before. </para>
- </listitem>
- </itemizedlist>
- <para>On<emphasis>
- <property> JBossServer View </property>
- </emphasis> right click on the <emphasis>
- <property>JBoss Application Server</property>
- </emphasis> and select <emphasis>
- <property> Start </property>
- </emphasis></para>
-
- <figure>
- <title>Start the Server</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/crud_application_walkthrough/crud_application_walkthrough_1.png"
- scale="70"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
<itemizedlist>
<listitem>
<para>Run a project on the Server. </para>
@@ -60,7 +35,7 @@
<mediaobject>
<imageobject>
<imagedata
- fileref="images/crud_application_walkthrough/crud_application_walkthrough_2.png"
+ fileref="images/crud_application_walkthrough/crud_application_walkthrough_1.png"
scale="70"/>
</imageobject>
</mediaobject>
Modified: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_database_application.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_database_application.xml 2008-12-19 20:12:52 UTC (rev 12783)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/crud_database_application.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="crud_database_application" xreflabel="crud_database_application">
+<chapter id="crud_database_application" xreflabel="crud_database_application" role="updated">
<?dbhtml filename="crud_database_application.html"?>
<chapterinfo>
<keywordset>
@@ -31,7 +31,7 @@
<property>CRUD</property> support. </para>
</section>
- <section>
+ <section role="updated">
<title>How to create the CRUD Database Application with Seam</title>
<itemizedlist>
Modified: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/directory_structure.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/directory_structure.xml 2008-12-19 20:12:52 UTC (rev 12783)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/directory_structure.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="directory_str" xreflabel="directory_str" revisionflag="added">
+<chapter id="directory_str" xreflabel="directory_str" >
<?dbhtml filename="directory_structure.html"?>
<chapterinfo>
<keywordset>
Modified: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/intro.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/intro.xml 2008-12-19 20:12:52 UTC (rev 12783)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/intro.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -25,7 +25,7 @@
applications with many component frameworks.</para>
</section>
- <section revisionflag="added">
+ <section>
<title>Installation into Eclipse</title>
<para>Here, we are going to explain how to install Seam plugin into Eclipse.</para>
Modified: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_editors.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_editors.xml 2008-12-19 20:12:52 UTC (rev 12783)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_editors.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -111,7 +111,7 @@
execute all the active WTP validations.</para>
</section>
- <section id="ComponentsEditor" revisionflag="changed">
+ <section id="ComponentsEditor">
<title>Structured components.xml Editor</title>
<para>When editing <property>components.xml</property> a structured tree editor is available
Modified: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_menus_and_actions.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_menus_and_actions.xml 2008-12-19 20:12:52 UTC (rev 12783)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_menus_and_actions.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -278,7 +278,7 @@
<para>To open Seam Components click on <emphasis><property>Navigate > Open Seam
Component</property></emphasis> in the main menu bar. This dialog is also available from toolbar
- icon.</para>
+ icon or with hot keys combination "Ctrl+Shift+Z ".</para>
<figure>
<title>Open Seam Components icon</title>
Modified: branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_preferences.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_preferences.xml 2008-12-19 20:12:52 UTC (rev 12783)
+++ branches/jbosstools-3.0.0.CR1/seam/docs/reference/en/modules/seam_preferences.xml 2008-12-19 20:16:55 UTC (rev 12784)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="seam_preferences" xreflabel="seam_preferences">
+<chapter id="seam_preferences" xreflabel="seam_preferences" role="updated">
<!-- mark as new -->
<?dbhtml filename="seam_preferences.html"?>
<chapterinfo>
@@ -111,7 +111,7 @@
</section>
</section>
- <section id="project_pref">
+ <section id="project_pref" role="updated">
<title>Project Preferences</title>
<para>Once Seam project is created you can modify its settings. Right click on Seam project
15 years, 4 months
JBoss Tools SVN: r12783 - in branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en: images/editors_features and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2008-12-19 15:12:52 -0500 (Fri, 19 Dec 2008)
New Revision: 12783
Added:
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_8a.png
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_8b.png
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master_output.xml
Modified:
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_2.png
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_6.png
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master.xml
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/editors.xml
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/palette.xml
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/preferences.xml
branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/spring_tools.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-324
the latest docs that are done for release 3.0.0.CR1 from trunk are added to branch
master_output - the file to build guide versions with highlighted diff markers
+ missing pics are added
Modified: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_2.png
===================================================================
(Binary files differ)
Modified: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_6.png
===================================================================
(Binary files differ)
Added: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_8a.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_8a.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_8b.png
===================================================================
(Binary files differ)
Property changes on: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/images/editors_features/editors_features_8b.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master.xml 2008-12-19 20:07:03 UTC (rev 12782)
+++ branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master.xml 2008-12-19 20:12:52 UTC (rev 12783)
@@ -35,7 +35,7 @@
<holder>JBoss, a division of Red Hat Inc.</holder>
</copyright>
<releaseinfo>
- Version: 2.0.0.Beta1
+ Version: 2.0.0.CR1
</releaseinfo>
<abstract>
<title/>
Added: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master_output.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master_output.xml (rev 0)
+++ branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/master_output.xml 2008-12-19 20:12:52 UTC (rev 12783)
@@ -0,0 +1,4060 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.docbook.org/xml/4.3/docbookx.dtd"
+
+[
+<!ENTITY Visual_Web_Tools SYSTEM "modules/Visual_Web_Tools.xml">
+<!ENTITY springTools SYSTEM "modules/spring_tools.xml">
+<!ENTITY editors SYSTEM "modules/editors.xml">
+<!ENTITY palette SYSTEM "modules/palette.xml">
+<!ENTITY web_projects SYSTEM "modules/web_projects.xml">
+<!ENTITY preferences SYSTEM "modules/preferences.xml">
+
+<!ENTITY seamlink "../../seam/html_single/index.html">
+<!ENTITY aslink "../../as/html_single/index.html">
+<!ENTITY esblink "../../esb_ref_guide/html_single/index.html">
+<!ENTITY gsglink "../../GettingStartedGuide/html_single/index.html">
+<!ENTITY hibernatelink "../../hibernatetools/html_single/index.html">
+<!ENTITY jbpmlink "../../jbpm/html_single/index.html">
+<!ENTITY jsflink "../../jsf/html_single/index.html">
+<!ENTITY jsfreflink "../../jsf_tools_ref_guide/html_single/index.html">
+<!ENTITY jsftutoriallink "../../jsf_tools_tutorial/html_single/index.html">
+<!ENTITY strutsreflink "../../struts_tools_ref_guide/html_single/index.html">
+<!ENTITY strutstutoriallink "../../struts_tools_tutorial/html_single/index.html">
+<!ENTITY migrationlink "../../Exadel-migration/html_single/index.html">
+
+]><book xmlns:diffmk="http://diffmk.sf.net/ns/diff">
+ <bookinfo>
+ <title>Visual Web Tools Reference Guide</title>
+
+ <pubdate>April 2008</pubdate>
+ <copyright>
+ <year>2007</year>
+ <year>2008</year>
+ <holder>JBoss, a division of Red Hat Inc.</holder>
+ </copyright>
+ <releaseinfo><diffmk:wrapper diffmk:change="changed">
+ Version: 2.0.0.CR1
+ </diffmk:wrapper></releaseinfo>
+<abstract>
+ <title></title>
+ <para>
+ <ulink url="http://download.jboss.org/jbosstools/nightly-docs/en/jsf/pdf/Visual_Web_T...">PDF version</ulink>
+ </para>
+</abstract>
+
+
+ </bookinfo>
+<toc></toc>
+
+
+<chapter id="Visual_Web_Tools" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jsf/docs/userguide/en/modules/Visual_Web_Tools.xml" xreflabel="Visual_Web_Tools">
+ <?dbhtml filename="Visual_Web_Tools.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>JBDS</keyword>
+ <keyword>Java</keyword>
+ <keyword>Web Tools</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Visual Web Tools</title>
+
+ <para>This guide covers the usage of Visual Web Tools in <property moreinfo="none">JBoss Developer
+ Studio</property> and <property moreinfo="none">JBoss Tools</property>. The difference between these products is
+ that JBoss Tools are just a set of Eclipse plugins where JBoss Developer Studio adds the following functionality:</para>
+ <itemizedlist>
+ <listitem>
+ <para>an installer</para>
+ </listitem>
+ <listitem>
+ <para>Eclipse and Web Tools preconfigured</para>
+ </listitem>
+ <listitem>
+ <para>JBoss EAP with JBoss AS and Seam preconfigured</para>
+ </listitem>
+ <listitem>
+ <para>3rd party plugins bundled and configured</para>
+ </listitem>
+ <listitem>
+ <para>access to RHEL and Red Hat Network</para>
+ </listitem>
+ <listitem>
+ <para>access to the JBoss/Red Hat supported software</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>For additional information, please visit the JBoss Developer Studio home page at: <ulink url="http://www.jboss.com/products/devstudio">http://www.jboss.com/products/devstudio</ulink>.</para>
+
+ <para>In JBoss Tools there is an extensive collection of specialized wizards, editors and views
+ that can be used in various scenarios while developing Web applications. The following chapters
+ walk through these features.</para>
+
+ <section id="key_features">
+ <title>Key Features of Visual Web Tools</title>
+ <para>Here is the table of the main features of Visual Web Tools:</para>
+
+ <table>
+
+ <title>Key Functionality for Visual Web Tools</title>
+ <tgroup cols="3">
+
+ <colspec align="left" colnum="1" colwidth="2*"></colspec>
+ <colspec colnum="2" colwidth="4*"></colspec>
+ <colspec align="left" colnum="3" colwidth="2*"></colspec>
+
+ <thead>
+ <row>
+ <entry>Feature</entry>
+ <entry>Benefit</entry>
+ <entry>Chapter</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Visual Page Editor</entry>
+ <entry>Powerful and customizable visual page editor. Possibility to develop an application
+ using any web technology: jsf, seam, struts, jsp, html and others. Developing using four
+ tabs: visual/source, visual, source and preview. Fast and easy switching between these tabs.
+ Split screen design of visual and source views. Full and instant synchronization between
+ source and visual views. Integration with properties and outline views. Graphical toolbar to
+ add inline styling to any tag.</entry>
+ <entry>
+ <link linkend="visual_page">visual page editor</link>
+ </entry>
+ </row>
+
+ <row>
+ <entry>JBoss Tools Palette</entry>
+ <entry>Organizing various tags by groups, inserting tags into a jsp or xhtml page with one
+ click, adding custom or 3rd party tag libraries into the palette, easy controling the number
+ of tag groups shown on the palette.</entry>
+ <entry>
+ <link linkend="palette">jboss tools palette</link>
+ </entry>
+ </row>
+
+ <row>
+ <entry>Web Projects View</entry>
+ <entry>Visualizing and displaying projects by function. Easy selecting of different kinds of
+ items and dropping them into jsp pages. Using context menus to develop the application. Using
+ icon shortcuts to create and import JSF and Struts projects. Expanding and inspecting tag
+ library files. Selecting custom and third-party tag libraries to drag and drop onto the JBoss
+ Tools Palette.</entry>
+ <entry>
+ <link linkend="web_projects">web projects view</link>
+ </entry>
+ </row>
+
+ <row>
+ <entry>OpenOn</entry>
+ <entry>Easy navigation between views and other parts of your projects.</entry>
+ <entry>
+ <link linkend="OpenOnSelection4Hyperlinknavigation">openOn</link>
+ </entry>
+ </row>
+
+ <row>
+ <entry>Content Assist</entry>
+ <entry>Code completion proposals while working with html, java, JavaScript , xml, jsp, xhtml, xhtml, seam project
+ and jsf configuration files. Content assist based on project data (dynamic code assist); with
+ graphical editor. Code completion for values from property files, beans attributes and
+ methods, navigation rule outcomes and jsf variables.</entry>
+ <entry>
+ <link linkend="CodeAssistAndDynamicCodeAssist42BasedOnProjectData">content assist</link>
+ </entry>
+ </row>
+
+ <row>
+ <entry>Drag-and-Drop</entry>
+ <entry>Possibility of inserting any tag onto the page you are editing by just drag-and-droping
+ it from the palette to this page. Adding any properties, managed bean attributes, navigation
+ rules, tag library file declarations, jsp files from web projects view by clicking them and
+ draging to source code.</entry>
+ <entry>
+ <link linkend="visual_page">visual page editor</link>
+ <link linkend="DragAndDrop">drag-and-drop</link>
+ </entry>
+ </row>
+
+ <row>
+ <entry>RichFaces Support</entry>
+ <entry>Tight integration between JBDS and <ulink url="http://www.jboss.org/jbossrichfaces">RichFaces</ulink> frameworks. Easy managing RichFaces
+ components in any web application. Support for RichFaces and Ajax4jsf libraries in JBoss
+ Tools Palette. Rendering RichFaces components in Visual Page Editor.</entry>
+ <entry>
+ <link linkend="RichFacesSupport">RichFaces support</link>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
+<section>
+ <title>Other relevant resources on the topic</title>
+ <para>All JBoss Developer Studio/JBoss Tools documentation you can find <ulink url="http://www.jboss.com/products/devstudio/docs">here</ulink>.</para>
+ <para>The latest documentation builds are available <ulink url="http://download.jboss.org/jbosstools/nightly-docs/">here</ulink>.</para>
+</section>
+
+</chapter>
+
+
+<chapter id="springTools" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jsf/docs/userguide/en/modules/spring_tools.xml">
+ <?dbhtml filename="springTools.html"?>
+ <title>Spring Tools</title>
+
+ <para>JBoss Developer Studio is bundled with <ulink url="http://springide.org/project">Spring IDE</ulink> for Eclipse.
+ Visit Spring IDE site for the latest versions and documentation.</para>
+
+
+ <section>
+ <title><ulink url="http://springide.org/project/wiki/SpringideGuide">Spring IDE guide</ulink></title>
+
+ <para><ulink url="http://springide.org/project">Spring IDE</ulink> is a graphical user interface for the configuration files used by the <ulink url="http://www.springframework.org/">Spring Framework</ulink>. It's built as a set of plugins for the Eclipse platform.</para>
+
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#AddProjectNature">Add Spring Project Nature</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#CreateNewProject">Create New Spring Project</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#AddProjectReferences">Add References To Other Spring Projects</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#AddBeansConfigs">Add Spring Beans Config Files</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#CreateBeansConfigSets">Create Spring Beans Config Sets</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#OpenSpringExplorer">Open Spring Explorer</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#ValidateBeansConfig">Validate Spring Beans Config</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#OpenBeansGraph">Open Spring Beans Graph</ulink></title><para></para></section>
+ <section><title><ulink url="http://springide.org/project/wiki/SpringideGuide#SearchBeans">Search Spring Beans</ulink></title><para></para></section>
+
+ </section>
+
+ </chapter>
+
+
+<chapter id="jbds_editors" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jsf/docs/userguide/en/modules/editors.xml" xreflabel="jbds_editors">
+ <?dbhtml filename="editors.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>JBDS</keyword>
+ <keyword>Editor</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Editors</title>
+
+ <para>In the <ulink url="../../jsf_tools_ref_guide/html_single/index.html">JSF Tools Reference Guide</ulink> and <ulink url="../../struts_tools_ref_guide/html_single/index.html">Struts Tools Reference Guide</ulink> you had possibility to
+ read about Graphical Editor for <ulink url="../../jsf_tools_ref_guide/html_single/index.html#jsf_config_file">JSF</ulink>
+ and <ulink url="../../struts_tools_ref_guide/html_single/index.html#struts_config_editor">Struts</ulink> configuration
+ files, <ulink url="../../struts_tools_ref_guide/html_single/index.html#GraphicalEditorForTilesFiles132">Graphical Editor for
+ Tiles Files</ulink>, <ulink url="../../struts_tools_ref_guide/html_single/index.html#GraphicalEditorForStrutsValidationFiles86">Graphical Editor for
+ Struts Validation Files</ulink>. All these editors have <link linkend="OpenOnSelection4Hyperlinknavigation">
+ <property moreinfo="none">OpenOn</property>
+ </link> and <link linkend="CodeAssistAndDynamicCodeAssist42BasedOnProjectData">
+ <property moreinfo="none">Content Assist</property>
+ </link> features, which are described in more details in this document. In addition you get
+ to know a <link linkend="visual_page">Visual Page Editor</link> for combined visual and
+ source editing of Web pages and many <link linkend="more_editors">other editors</link> for
+ different types of files.</para>
+
+ <section id="editors_features">
+
+ <title>Editors Features</title>
+ <para>JBoss Developer Studio has powerful editor features that help you easily navigate
+ within your application and make use of content and code assist no matter what project
+ file (jsp, xhtml, xml, css, etc...) you are working on.</para>
+
+ <section id="OpenOnSelection4Hyperlinknavigation" role="updated">
+
+ <title>OpenOn</title>
+
+ <para><property moreinfo="none">OpenOn</property><diffmk:wrapper diffmk:change="added"> lets you easily link directly from one resource to
+ another in your project without using the Package Explorer view (project tree). With
+ OpenOn, you can simply use </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">F3</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> or </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Ctrl+Click</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> on a reference to another file and the file will be opened.</diffmk:wrapper></para>
+
+ <para>OpenOn is available for the following files:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link linkend="XMLFiles232">XML files</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="JSPPages223">JSP/XHTML Pages</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Java files</para>
+ </listitem>
+ </itemizedlist>
+ <section id="XMLFiles232">
+
+ <title>XML Files</title>
+
+ <para>Press and hold down the Ctrl key. As you move the mouse cursor over different
+ file references in the file, they display an underline. When you hover the name
+ of the file you want to open, click and the file will open in its own editor. In
+ this example the managed bean NameBean will open.</para>
+ <figure float="0">
+ <title>NameBean Managed Bean</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>This is the result of using OpenOn.</para>
+ <figure float="0">
+ <title>NameBean Java Class</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>You can also use OpenOn with defined attributes.</para>
+ <figure float="0">
+ <title>OpenOn With Defined Attributes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>You can also open any JSP pages.</para>
+ <figure float="0">
+ <title>JSP Page OpenOn</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="JSPPages223">
+
+ <title>JSP Pages</title>
+
+ <para><property moreinfo="none">OpenOn</property> is also very useful in JSP pages. It will allow
+ you to quickly jump to the reference instead of having to hunt around in the
+ project structure.</para>
+
+ <para>You can easily open the imported property files.</para>
+ <figure float="0">
+ <title>OpenOn With Imported Property Files</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Use OpenOn to open a CSS file used with a JSP page:</para>
+ <figure float="0">
+ <title>OpenOn With CSS File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Open managed beans:</para>
+ <figure float="0">
+ <title>OpenOn With Managed Beans</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>For JSP files in a JSF project, you can also easily open the navigation rules
+ by applying <property moreinfo="none">OpenOn</property> to the JSF tag for the navigation
+ outcome:</para>
+ <figure float="0">
+ <title>OpenOn With JSF Tag</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Richfaces tags </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added"><rich:insert></diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> and </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added"><a4j:include></diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> has also </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">OpenOn</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> support.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">OpenOn With Richfaces Tag</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/editors_features/editors_features_8a.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">OpenOn With A4j Tag</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/editors_features/editors_features_8b.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ </section>
+
+ <section id="CodeAssistAndDynamicCodeAssist42BasedOnProjectData" role="updated">
+
+ <title>Content Assist</title>
+ <para><property moreinfo="none">Content assist</property> is available when working with</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="../../seam/html_single/index.html#ContentAssist">Seam project files</ulink>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="JSFProjectFiles3087">JSF project files</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="StrutsProjectFile46s3">Struts project files</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="JSPPages434">JSP files</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="ContentAssistForRF">RichFaces components</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="../../esb_ref_guide/html_single/index.html#ESBContentAssist">ESB XML files</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+
+ <section id="JSFProjectFiles3087">
+
+ <title>JSF Project Files</title>
+
+ <para>When working with JSF project in JBoss Developer Studio, you can use various
+ <property moreinfo="none">Content Assist features</property> while developing:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Content Assist for XML, JSP and JSF configuration files</para>
+ </listitem>
+ <listitem>
+ <para>Content Assist based on project data</para>
+ </listitem>
+ <listitem>
+ <para>Content Assist with graphical JSF editor</para>
+ </listitem>
+ </itemizedlist>
+ <section id="ContentAssistForXMLJSPAndJSFConfigurationFiles865">
+
+ <title>Content Assist for XML, JSP and JSF configuration files</title>
+
+ <para>At any point when working with any XML, JSP and JSF configuration files
+ Content Assist is available to help you. Simply type <emphasis>
+ <property moreinfo="none">Ctrl-Space</property>
+ </emphasis> to see what is available.</para>
+
+ <para>Content Assist for JSF configuration file:</para>
+ <figure float="0">
+ <title>Content Assist in JSF Configuration File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_9.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Content Assist for JSF JSP file:</para>
+ <figure float="0">
+ <title>Content Assist in JSP File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_10.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Content Assist for other JSF XML project files (web.xml shown):</para>
+ <figure float="0">
+ <title>Content Assist in web.xml File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_11.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ContentAssistBasedOnProjectData86">
+
+ <title>Content Assist Based on Project Data</title>
+
+ <para>JBoss Developer Studio takes Content Assist to the next level. Studio will
+ constantly scan your project and you will be able to insert code into the
+ JSP page from your project that includes:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Values from Property files</para>
+ </listitem>
+ <listitem>
+ <para><emphasis role="italic">
+ <property moreinfo="none">"Managed beans"</property>
+ </emphasis> attributes and methods</para>
+ </listitem>
+ <listitem>
+ <para>Navigation Rule Outcomes</para>
+ </listitem>
+ <listitem>
+ <para>JSF variables (context, request etc...)</para>
+ </listitem>
+ </itemizedlist>
+ <para>The figure below shows how to insert message from a Properties files. You
+ simply put the cursor inside the <emphasis role="italic">
+ <property moreinfo="none">"value"</property>
+ </emphasis> attribute and press <emphasis>
+ <property moreinfo="none">Ctrl-Space</property>. </emphasis> JBoss Developer Studio will
+ scan your project and show a list of possible values to insert.</para>
+ <figure float="0">
+ <title>Inserting Message</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>In the following screenshot we are inserting a <emphasis role="italic">
+ <property moreinfo="none">"Managed bean"</property>
+ </emphasis> attribute value. Again, by simply clicking
+ <emphasis><property moreinfo="none">Ctrl-Space</property>,</emphasis> JBoss
+ Developer Studio will show a list of all possible values that you can
+ insert.</para>
+
+ <para>Once you select a Managed bean, it will show you a list of all available
+ attributes for the selected Managed bean (userBean).</para>
+ <figure float="0">
+ <title>Attributes List</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Code Assist based on project data will also prompt you for navigation
+ rules that exist in your JSF configuration file.</para>
+ <figure float="0">
+ <title>Code Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ContentAssistWithinJSFGraphicalEditor44">
+
+ <title>Content Assist within Tree JSF Editor</title>
+
+ <para>JBoss Developer Studio also provides Content Assist when working within
+ the Tree JSF configuration editor. Just click <emphasis>
+ <property moreinfo="none">Ctrl-Space</property>. </emphasis></para>
+ <figure float="0">
+ <title>Content Assist in Tree JSF Configuration Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_15.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <!--
+
+ <para>If a field contains right class name and you click a link near the
+ field you will come to the file with this class otherwise a new Java
+ Class dialog will be shown:</para>
+ <figure>
+ <title>New Java Class</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
+ fileref="images/editors_features/editors_features_16.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>If you entered an incorrect name in the field error markers will be
+ shown for field labels and tree items:</para>
+ <figure>
+ <title>Error Markers</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
+ fileref="images/editors_features/editors_features_17.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>To add a new property to a managed bean expand <emphasis>
+ <property>Managed Beans</property>
+ </emphasis> and select <emphasis role="bold">
+ <property><name_of_bean></property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property>Add</property>
+ </emphasis> button in the Properties panel</para>
+ </listitem>
+ <listitem>
+ <para>In the dialog Add Property define a new property. From here
+ also you can generate setters and getters methods:</para>
+ </listitem>
+ </itemizedlist>
+ <figure>
+ <title>Create New Property</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
+ fileref="images/editors_features/editors_features_18.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Here you can also add an additional navigation rule to the
+ faces-config.xml file.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Select <emphasis>
+ <property>Navigation Rules</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property>Add</property>
+ </emphasis> button</para>
+ </listitem>
+ <listitem>
+ <para>In the dialog <emphasis>
+ <property>Add Rule</property>
+ </emphasis> define a view and give a name to the rule. Click
+ Finish:</para>
+ </listitem>
+ </itemizedlist>
+ <figure>
+ <title>Add New Navigation Rule</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
+ fileref="images/editors_features/editors_features_19.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ -->
+ </section>
+ </section>
+
+ <section id="StrutsProjectFile46s3">
+ <title>Struts Project Files</title>
+ <para><diffmk:wrapper diffmk:change="changed">Content Assist features are available when you work with Struts
+ projects.</diffmk:wrapper></para>
+
+
+ <section id="ContentAssistForStrutsConfigurationFile75">
+
+
+ <title>Content Assist for Struts Configuration File</title>
+
+ <para>Content Assist helps you in Struts Configuration file.</para>
+
+ <figure float="0">
+ <title>Struts Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_20.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ContentAssistForStrutsJSPFile07">
+
+ <title>Content Assist for Struts JSP File</title>
+
+ <para>Using Code Assist in Struts JSP file is shown below.</para>
+
+ <figure float="0">
+ <title>Struts JSP Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_21.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ </section>
+ <section id="JSPPages434">
+
+ <title>JSP Pages</title>
+
+
+ <section id="ContentAssistForJSFTags96">
+
+ <title>Content Assist for JSF Tags</title>
+ <para>JBDS provides full code completion for JSF tags:</para>
+
+ <figure float="0">
+ <title>JSF Tags Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_22.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>When the tag is selected the required attributes, if there any, are
+ already inserted and the cursor is located to the first attribute. At this
+ point you can ask for attribute proposals.</para>
+ <figure float="0">
+ <title>Attributes Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_23.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section id="ContentAssistForJSTLTags6332">
+
+ <title>Content Assist for JSTL Tags</title>
+ <figure float="0">
+ <title>JSTL Tags Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_24.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ContentAssistForHTMLTags7454">
+
+ <title>Content Assist for HTML Tags</title>
+ <para><diffmk:wrapper diffmk:change="changed">Content assist for HTML tags has the same mechanism as for JSF
+ tags:</diffmk:wrapper></para>
+ <figure float="0">
+ <title>HTML Tags Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_25.png" scale="60"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>You can use as well attributes proposals for HTML tags:</para>
+ <figure float="0">
+ <title>HTML Tags Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_26.png" scale="60"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ContentAssistForJavaScriptTags67433">
+
+ <title>Content Assist for JavaScript Tags</title>
+ <figure float="0">
+ <title>JavaScript Tags Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ediors_features/editors_features_27.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+
+ </section>
+ <section id="ContentAssistForRF">
+
+ <title>RichFaces components</title>
+ <para>JBDS indeed provides code completion for <ulink url="http://www.jboss.org/jbossrichfaces">RichFaces</ulink> framework
+ components. All you have to do is to install RichFaces libraries into your
+ project. See <ulink url="http://labs.jboss.com/file-access/default/members/jbossrichfaces/freezone...">here</ulink> how to install it.</para>
+ <figure float="0">
+ <title>Content Assist for RichFaces Components</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_29.png" scale="65"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>To insert a RichFaces component on a page expand <emphasis>
+ <property moreinfo="none">JBoss RichFaces</property>
+ </emphasis> group on the palette</para>
+ </listitem>
+ <listitem>
+ <para>Click on some component</para>
+ </listitem>
+ <listitem>
+ <para>Put the needed attributes in the <emphasis>
+ <property moreinfo="none">Insert Tag</property>
+ </emphasis> dialog and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button <figure float="0">
+ <title>Insert Tag</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_30.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The RichFaces tag will be inserted on your page displayed in source and visual
+ modes: </para>
+ <figure float="0">
+ <title>RichFaces Component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_31.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+
+ <section id="AddingDynamicCodeAssistToCustomComponents8745">
+
+ <title>Adding dynamic code assist to custom components that were added to JBoss
+ Tools Palette</title>
+ <para>Here is what you need to do to add project based code assist to a custom
+ component added in <property moreinfo="none">JBoss Developer Studio</property>:</para>
+ <orderedlist continuation="restarts" inheritnum="ignore">
+ <listitem>
+ <para>Create a new xml file in <emphasis>
+ <property moreinfo="none"><JBDS_home>studio/eclipse/plugins/org.jboss.tools.common.kb_***/schemas/tld/</property>.
+ </emphasis>For example call it <emphasis>
+ <property moreinfo="none"> JeniaFaces.xml</property>
+ </emphasis>. The file should be written according to <emphasis>
+ <property moreinfo="none"><JBDS_home>/studio/eclipse/plugins/org.jboss.tools.common.kb/kb.jar/org/jboss/tools/common/kb/kb-schema_1.0.dtd</property>
+ </emphasis></para>
+ </listitem>
+ </orderedlist>
+ <para>Follow these steps to set what is available for code assist:</para>
+ <itemizedlist>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="added">Adds code assist for JSF pre-defined objects, such as </diffmk:wrapper><diffmk:wrapper diffmk:change="added"><![CDATA[value=]]></diffmk:wrapper><emphasis role="italic">
+ <property moreinfo="none">"#{param}"</property>
+ </emphasis>:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<AttributeType ...>
+ <proposal type="jsfVariables"/>
+</AttributeType>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Add bundle resource (property file) <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">code
+ assist</diffmk:wrapper></property>:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<AttributeType ...>
+ <proposal type="bundleProperty"/>
+</AttributeType>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Add managed bean property <property moreinfo="none">code assist</property>:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<AttributeType ...>
+ <proposal type="beanProperty"/>
+</AttributeType>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Add managed bean property but of a specified type:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<AttributeType ...>
+ <proposal type="beanProperty">
+ <param name="type" value="java.lang.Boolean"/>
+ </proposal>
+</AttributeType>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Add managed bean method with a signature:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<AttributeType ...>
+ <proposal type="beanMethodBySignature">
+ <param name="paramType" value="javax.faces.context.FacesContext"/>
+ <param name="paramType" value="javax.faces.component.UIComponent"/>
+ <param name="paramType" value="java.lang.Object"/>
+ <param name="returnType" value="void"/>
+ </proposal>
+</AttributeType>
+]]></programlisting>
+ <orderedlist continuation="restarts" inheritnum="ignore">
+ <listitem>
+ <para>Add information on your xml file in <emphasis>
+ <property moreinfo="none"><JBDS_home>/studio/eclipse/plugins/org.jboss.common.kb_***/plugin.xml</property>
+ </emphasis></para>
+ <programlisting format="linespecific" role="XML"><![CDATA[
+ <tld
+ jsf="true"
+ name="Jenia Faces"
+ schema-location="schemas/tld/myJSF.xml"
+ uri="http://www.jenia.org/jsf/dataTools"/>]]>
+ </programlisting>
+ </listitem>
+
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">Restart Eclipse. You should now have code assist for the
+ component.</diffmk:wrapper></para>
+ </listitem>
+ </orderedlist>
+
+ </section>
+ </section>
+ <section id="FullControlOverSourceFiles-SynchronizedSourcAndVisualEditing74">
+
+ <title>Synchronized Source and Visual Editing</title>
+
+ <para><property moreinfo="none">JBoss Developer Studio</property> offers the flexibility to edit any
+ files in either source or extra visual modes at the same time.</para>
+
+ <para>The project is yours and so is the source. <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">JBoss Developer
+ Studio</diffmk:wrapper></property> provides you many different graphical editors to speed your
+ application development. At the same time, you always have a full control over all
+ project source files. Any changes you make in the source view immediately appear in
+ the graphical view.</para>
+
+ <para>The JSF configuration file editor has three views: <property moreinfo="none">Diagram</property>,
+ <property moreinfo="none">Tree</property> and <property moreinfo="none">Source</property>. All views are
+ synchronized, you can edit the file in any view.</para>
+ <figure float="0">
+ <title>Three Views are Synchronized</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_32.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The same is relevant to all other <property moreinfo="none">JBoss Developer Studio</property>
+ editors.</para>
+
+ <para>Web XML editor is shown. Web XML editor has a graphical view (Tree) and source
+ (Source).</para>
+
+ <figure float="0">
+ <title>Two Views are Synchronized</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_35.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><property moreinfo="none">JBoss Developer Studio</property> TLD file editor is shown in Tree view.
+ At any point you can edit the source by switching to Source view.</para>
+ <figure float="0">
+ <title>Two Views are Synchronized</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editors_features/editors_features_37.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ </section>
+ <section id="visual_page" role="updated">
+
+ <title>Visual Page Editor</title>
+
+ <para><property moreinfo="none">JBoss Developer Studio</property> comes with a powerful and customizable
+ <property moreinfo="none">Visual Page Editor</property> (VPE). You can use the Visual Page Editor to
+ develop an application using any technology: JSF, Struts, JSP, HTML and others.</para>
+
+ <para>Current VPE version has three tabs: <property moreinfo="none">Visual/Source</property>,
+ <property moreinfo="none">Source</property> and <property moreinfo="none">Preview</property>. To switch between the
+ views you can use tabs at the bottom of the VPE or the shortcuts <emphasis>
+ <property moreinfo="none">Ctrl + PageUp/Ctrl + PageDown</property>.</emphasis></para>
+
+ <figure float="0">
+ <title>Visual Page Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_1.png" scale="95"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <section id="visual_source">
+ <title>Visual/Source View</title>
+
+ <para>Using the <property moreinfo="none">Visual/Source view</property> you can edit your pages in the
+ Source and Visual modes simultaneously having an instant synchronization between
+ them:</para>
+ <figure float="0">
+ <title>Visual/Source View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_2.png" scale="95"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">The view is designed in the form of a split pane with toggle buttons for quickly
+ moving between Source, Visual or Source/Visual modes as shown on the figure
+ above.</diffmk:wrapper></para>
+
+ <para>One more way to toggle between the various states of the split pane is using the
+ shortcuts <emphasis>
+ <property moreinfo="none">Shift + F6</property>
+ </emphasis> for maximizing/restoring the Source part and <emphasis>
+ <property moreinfo="none">Shift + Alt + F6</property>
+ </emphasis> for maximizing/restoring the Visual part.</para>
+ <tip>
+ <title>Tip:</title>
+ <para><diffmk:wrapper diffmk:change="changed">When editing large documents hiding the Visual part will speed up the
+ editing.</diffmk:wrapper></para>
+ </tip>
+
+ <para>It should be pointed out that, no matter in what mode you are working, you get a
+ full integration with <property moreinfo="none">Properties</property> and <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Outline
+ views</diffmk:wrapper></property>:</para>
+ <figure float="0">
+ <title>Integration with Properties and Outline Views</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_3.png" scale="55"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>It's also possible to use the <link linkend="palette"><diffmk:wrapper diffmk:change="changed">JBoss Tools
+ Palette</diffmk:wrapper></link><diffmk:wrapper diffmk:change="changed"> to insert any tag from the list of tag libraries to the page you
+ are editing with just a click or drag-and-drop.</diffmk:wrapper></para>
+ <figure float="0">
+ <title>Inserting Tag From the Palette</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata diffmk:change="added" fileref="images/visual_page/visual_page_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Visual Page Editor</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> provides the option for displaying
+ non-visual tags in Visual mode of the editor. To enable this option expand the
+ submenu in the top left corner of the Visual part and select </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Show Non-visual tags</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></emphasis></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Enabling the Option for Showing Non-visual Tags</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/visual_page/visual_page_4a.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">On the figure you can see non-visual elements with gray dashed borders.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Non-visual Tag in the VPE</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/visual_page/visual_page_4b.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">To disable this option again expand the same submenu and select </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Hide Non-visual tags</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></emphasis></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Non-visual Tag in the VPE</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/visual_page/visual_page_4c.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <section diffmk:change="added" id="comments">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Commenting out Code</diffmk:wrapper></title>
+
+ <para diffmk:change="added"><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">VPE</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> supports possibility to add comments in files you are
+ working with (JSP, XHTML, etc.):</diffmk:wrapper></para>
+
+ <itemizedlist diffmk:change="added">
+ <listitem diffmk:change="added">
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">HTML comments (</diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added"><!-- --></diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added">) which are output to the client </diffmk:wrapper></para>
+ </listitem>
+ <listitem diffmk:change="added">
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">JSP comments (</diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added"><%-- --%></diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added">) which are not output to the client as part of the JSP page
+ output</diffmk:wrapper></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="JSPsyntaxvalidation84">
+
+ <title>JSP Syntax Validation</title>
+ <para>When working in JBoss Tools JSP editor you are constantly provided with
+ feedback and contextual error checking as you type.</para>
+ </section>
+
+ <section diffmk:change="added" id="taglib_versions_support">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Support for Taglib versions</diffmk:wrapper></title>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">VPE templates now support various versions of tag libraries. It means that the
+ </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">VPE</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> takes control under those components which have different parameters or
+ preview according to the framework version (like seam 1.2 and seam 2.0, or JSF
+ 1.1 and JSF 1.2).</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">For example, </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added"><s:decorate></diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> element in seam has different
+ parameters in versions 1.2 and 2.0 as well as </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added"><h:outputLink></diffmk:wrapper></property></emphasis><diffmk:wrapper diffmk:change="added"> JSF
+ element has different preview in versions 1.1 and 1.2.</diffmk:wrapper></para>
+ </section>
+ </section>
+
+ <section id="pages_styling">
+ <title>Pages Styling</title>
+
+ <para>Most web pages use the cascading style sheets (CSS) to control the way they look.
+ With <property moreinfo="none">Visual Page Editor</property><diffmk:wrapper diffmk:change="changed"> you can easily stylise your pages. In
+ this section we are going to introduce you to a powerful mechanism that
+ </diffmk:wrapper><property moreinfo="none">VPE</property><diffmk:wrapper diffmk:change="changed"> provides for a complete control over pages styling. </diffmk:wrapper></para>
+
+ <section id="inline_styling">
+ <title>Inline Style Editing</title>
+
+ <para>In the Visual part of the <property moreinfo="none">VPE</property> there is a graphical
+ toolbar, use it to add inline styling to JSF and Struts tags on your page. The
+ toolbar can be hidden by clicking on arrow sign in the upper left corner.</para>
+
+ <figure float="0">
+ <title>Text Formatting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>For editing inline styles for DOM elements <property moreinfo="none">VPE</property> also
+ provides <property moreinfo="none">CSS Dialog</property>. It can be called from <emphasis>
+ <property moreinfo="none">style</property>
+ </emphasis> line in the <property moreinfo="none">Properties view</property> for a currently
+ selected element.</para>
+
+ <figure float="0">
+ <title>Call the CSS Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para id="css_dialog"><property moreinfo="none">CSS Dialog</property> has four tabs where css
+ properties for text, background, borders and others can be specified. A simple
+ preview which is generated at the top of the <property moreinfo="none">CSS Dialog</property>
+ allows you to see the changes before you apply them.</para>
+
+ <figure float="0">
+ <title>CSS Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="external_stylesheets">
+ <title>External Stylesheets</title>
+ <para>The pages you are working with in <property moreinfo="none">VPE</property> can use external
+ stylesheets. <property moreinfo="none">VPE</property> allows you to create new style classes in
+ existing stylesheets and/or edit them as well. For these purposes <property moreinfo="none">CSS
+ Style Class Dialog</property><diffmk:wrapper diffmk:change="changed"> is provided (hot keys - CTRL+SHIT+C).</diffmk:wrapper></para>
+ <para>Select the element for which you need to create or edit style class and press
+ button next to <emphasis>
+ <property moreinfo="none">styleClass</property>
+ </emphasis> field in <property moreinfo="none">Properties view</property>.</para>
+
+ <figure float="0">
+ <title>Calling the CSS Style Class Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>It'll pick up the <property moreinfo="none">CSS Style Class Dialog</property> which
+ looks like on the figure below.</para>
+ <figure float="0">
+ <title>CSS Style Class Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_18.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>First, you should specify the CSS file where you are going to put your style
+ class. Do this by pressing button next to the <emphasis>
+ <property moreinfo="none">CSS file</property>
+ </emphasis> field.</para>
+ <figure float="0">
+ <title>CSS File Selection</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_19.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>To create new CSS class write its name in the <emphasis>
+ <property moreinfo="none">Style class</property>
+ </emphasis> field and then configure style settings switching between the tabs: <emphasis>
+ <property moreinfo="none">Text/Font</property>, </emphasis>
+ <emphasis>
+ <property moreinfo="none">Background</property>, </emphasis>
+ <emphasis>
+ <property moreinfo="none">Boxes</property>, </emphasis>
+ <emphasis>
+ <property moreinfo="none">Property Sheet</property>. </emphasis>To add existing styling to
+ the chosen element expand the list of the existed style classes and point to the
+ necessary one.</para>
+
+ <figure float="0">
+ <title>Style Class Selection</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_20.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><emphasis>
+ <property moreinfo="none">Quick Edit</property>
+ </emphasis> gives a preview of the properties which are set for the existing
+ style class. You can easily modify them with the help of this wizard.</para>
+
+ <figure float="0">
+ <title>Quick Edit</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_21.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Preview at the top of the <property moreinfo="none">CSS Style Class Dialog</property>
+ visualizes the result.</para>
+
+ <para>The dialog for creating a new CSS class, which is called from <emphasis>
+ <property moreinfo="none">New > Other... > JBoss Tools Web > CSS Class</property><diffmk:wrapper diffmk:change="changed">,
+ </diffmk:wrapper></emphasis> looks the same.</para>
+
+ <figure float="0">
+ <title>New CSS Class Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_22.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ </section>
+
+ <section id="vpe_templating">
+ <title>Templating</title>
+
+ <para>The VPE also makes it possible to create templates for unknown tags.</para>
+
+ <para>To call the <property moreinfo="none">Template dialog</property> for a tag, right-click on it in
+ Visual mode and select <emphasis>
+ <property moreinfo="none">Template</property>
+ </emphasis> option.</para>
+
+ <figure float="0">
+ <title>Calling Template Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_7a.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para id="template_dialog">Here is what the <property moreinfo="none">Template dialog</property> looks
+ like.</para>
+
+ <figure float="0">
+ <title>Template Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_7b.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><emphasis>
+ <property moreinfo="none">Tag for Display</property>
+ </emphasis> field in the <property moreinfo="none">Template dialog</property><diffmk:wrapper diffmk:change="changed"> requires specifying a
+ type of tag. It can be SPAN, DIV, TABLE or any other html element. Check </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Children</property>
+ </emphasis><diffmk:wrapper diffmk:change="added">, if you want to mark a tag as a child element.</diffmk:wrapper></para>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">The </diffmk:wrapper><emphasis>
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Value</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> field is for setting a tag value.</diffmk:wrapper></para>
+ <para><diffmk:wrapper diffmk:change="changed">As for the </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Style</property>
+ </emphasis> field, you can fill it out manually or make use of the button next to
+ the field to bring the <link linkend="css_dialog">CSS Dialog</link> for editing
+ styles.</para>
+
+ <para>You can observe all defined templates in the <link linkend="VisualPageEditor2">VPE
+ Preferences</link> on the Templates tab which you can quickly access by pressing
+ <link linkend="AdvancedSettings954">Preferences button</link>.</para>
+
+ <figure float="0">
+ <title>Templates Tab of the VPE Preferences Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_7c.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">Here it's possible to edit or remove any listed in the table
+ template.</diffmk:wrapper></para>
+
+ </section>
+
+ <section id="AdvancedSettings954">
+
+ <title>Advanced Settings</title>
+
+ <para>In the left vertical pane of the Visual part there are three buttons: <emphasis>
+ <property moreinfo="none">Preferences</property>, </emphasis><emphasis>
+ <property moreinfo="none">Refresh</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">Page Design Options</property>.</emphasis></para>
+
+ <figure float="0">
+ <title>Buttons on the Visual Part of VPE</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem id="vpe_preferences">
+ <para><emphasis>
+ <property moreinfo="none">Preferences</property>
+ </emphasis> button provides a quick access to <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Visual Page
+ Editor</diffmk:wrapper></property> preferences.</para>
+
+ <figure float="0">
+ <title>Visual Page Editor Preferences Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+
+ <listitem>
+ <para>Clicking on <emphasis>
+ <property moreinfo="none">Refresh</property>
+ </emphasis> button you refresh the displayed information.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>
+ <property moreinfo="none">Page Design Options</property>
+ </emphasis> button leads to window which helps you to specify necessary
+ references to resources. Here is what this window looks like.</para>
+ <figure float="0">
+ <title>Page Design Options</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>This dialog lets you set resources which are usually only resolved in
+ runtime. Let's look at what functionality it proposes.</para>
+
+ <para><diffmk:wrapper diffmk:change="changed">The first two sections of the window let you define actual runtime
+ folders. The example below will help you to clarify how this can be
+ used.</diffmk:wrapper></para>
+
+ <para>Suppose you have the following project structure:</para>
+
+ <programlisting format="linespecific" role="XML"><![CDATA[WebContent/
+ pages/
+ img/
+ a.gif
+ header.jsp
+ main.jsp
+ ]]></programlisting>
+
+ <para>The content of the <emphasis>
+ <property moreinfo="none">header.jsp</property>
+ </emphasis> is:</para>
+ <programlisting format="linespecific" role="XML"><![CDATA[My Header
+<img src="img/a.gif"/>
+]]></programlisting>
+ <para>and <emphasis>
+ <property moreinfo="none">main.jsp</property>
+ </emphasis> content is:</para>
+ <programlisting format="linespecific" role="XML"><![CDATA[<jsp:include page="pages/header.jsp" />
+]]></programlisting>
+ <para> When you open <emphasis>
+ <property moreinfo="none">main.jsp</property>
+ </emphasis> in <property moreinfo="none">Visual Page Editor</property>, it will not be able
+ to resolve the image from the header, however, it will work fine in runtime.
+ To fix this in design time, click the <emphasis>
+ <property moreinfo="none">Page Design Options</property>
+ </emphasis> button and set <emphasis>
+ <property moreinfo="none">Actual Run-Time Relative Folder</property>
+ </emphasis> to <emphasis>'projectName > WebContent >
+ pages'</emphasis> and you will see the image appeared.</para>
+ <para></para>
+
+ <para id="el_exp_para">In the bottom part of the window you can set a path to
+ included css files, tag libs and substituted EL expressions.</para>
+ <figure float="0">
+ <title>Bottom Part of the Page Design Options</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Let' consider an example. For instance, the definition of your
+ CSS on the page is the next:</para>
+
+ <programlisting format="linespecific" role="XML"><![CDATA[<link rel="stylesheet" type="text/css"
+ href="#{facesContext.externalContext.requestContextPath}/style.css"/>
+]]></programlisting>
+
+ <para>This will work fine in runtime, but the <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Visual Page
+ Editor</diffmk:wrapper></property><diffmk:wrapper diffmk:change="changed"> doesn't know what
+ </diffmk:wrapper><emphasis>requestContextPath</emphasis><diffmk:wrapper diffmk:change="changed"> in design time is. In order to
+ see the necessary styles applied in design time your should add a path to
+ your stylesheet in the </diffmk:wrapper><property moreinfo="none">CSS File Path</property> section.</para>
+
+ <para>The next <property moreinfo="none">URI</property> section lets you add URI taglibs so that
+ the editor knows where to find the tag libraries.</para>
+
+ <para>And the last <property moreinfo="none">Substituted EL expressions</property> section is
+ provided to specify the values for specific EL variables. It can be useful
+ for a preview generation.</para>
+ <para>As an example look at the figure below:</para>
+ <figure float="0">
+ <title>EL Expression</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Here bath in Source and Visual modes you see the EL expression
+ <emphasis>#{user.name}</emphasis>. When you switch to <property moreinfo="none">Preview
+ view</property>, you'll also see this expression. Now press <emphasis>
+ <property moreinfo="none">Page Design Options</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> button and set the value for the
+ </diffmk:wrapper><emphasis><diffmk:wrapper diffmk:change="changed">"user.name"</diffmk:wrapper></emphasis><diffmk:wrapper diffmk:change="changed"> as
+ </diffmk:wrapper><emphasis><property moreinfo="none">World</property>.</emphasis></para>
+
+ <figure float="0">
+ <title>Setting the Value for the EL Expression</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>As a result in Visual mode and Preview view the word <emphasis>
+ <property moreinfo="none">World</property>
+ </emphasis> is displayed.</para>
+ <figure float="0">
+ <title>The EL Expression Value</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>You can find useful one more functionality provided by VPE. At the bottom of the
+ <property moreinfo="none">Visual/Source view</property> there is a <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Selection Tag
+ Bar</diffmk:wrapper></property>. It allows to see tags tree for a current component selected in
+ Visual or Source mode.</para>
+
+ <figure float="0">
+ <title>Selection Tag Bar</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>If you want to hide the <property moreinfo="none">Selection Tag Bar</property>, use the button in
+ the form of a red cross on the lower right side. To reset it again you should check
+ the proper option in the <link linkend="vpe_preferences"><diffmk:wrapper diffmk:change="changed">VPE
+ Preferences</diffmk:wrapper></link>.</para>
+ </section>
+
+ <section id="page_preview">
+ <title>Page Preview</title>
+
+ <para><property moreinfo="none">VPE</property> comes with design-time preview feature which is available
+ for:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Struts Pages</para>
+ </listitem>
+ <listitem>
+ <para>JSF Pages</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><property moreinfo="none">Preview view</property> is read-only, it shows how the page will look
+ like in a browser.</para>
+ <figure float="0">
+ <title>Preview View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/visual_page/visual_page_16.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <!--para>You can even
+ attach your stylesheet to the preview.</para-->
+ </section>
+
+ <section id="SetupnotesforLinu895x">
+
+ <title>Setup notes for Linux</title>
+
+ <para>Linux users may need to do the following to get the <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Visual Page
+ Editor</diffmk:wrapper></property> to work correctly on their machines.</para>
+
+ <para> The Visual Page Editor requires the library libstdc++.so.5. This library is
+ contained in the compat-libstdc++-33.i386 package.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>To install this package on Fedora Core or Red Hat Enterprise Linux run the
+ following command:</para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[yum install compat-libstdc++-33.i386
+]]></programlisting>
+ </listitem>
+
+
+ <listitem>
+ <para>On any other rpm based distributions download libstdc++.so.5 and run the
+ following command:</para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[rpm -Uvh compat-libstdc++-33.i386
+]]></programlisting>
+ </listitem>
+
+
+ <listitem>
+ <para>On Debian based distributives run the following command: </para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[apt-get install compat-libstdc++-33.i386
+]]></programlisting>
+ </listitem>
+
+ </itemizedlist>
+
+ <para> In case you have the library installed and you still have issue with starting the
+ visual page editor then close all browser views/editors and leave one visual page
+ editor open and restart eclipse. This should force a load of the right XULRunner
+ viewer.</para>
+
+ </section>
+
+ <!-- <section id="CreateLookAndFeel(Design-timeMetadate)ForAnyCustomJSFComponents41">
+<?dbhtml filename="CreateLookAndFeel(Design-timeMetadate)ForAnyCustomJSFComponents.html"?>
+<title>JSP Visual Page Editor - Design Time Look and Feel for Custom Components</title>
+
+<itemizedlist>
+<listitem><ulink url="http://www.jboss.org/404.html">Template definition for design-time representation of custom tags</ulink> (pdf)
+<para></para>
+ <note>
+ <title>Note:</title>
+ <para>The templates files are now saved in <emphasis><RedHatDeveloperStudio>\eclipse\plugins\com.exadel.vpe_1.1.1\plugin.xml</emphasis>. The PDF files show the old location.</para>
+ </note>
+<para></para></listitem>
+
+<listitem><ulink url="http://www.jboss.org/404.html">Steps to Create Plug-in</ulink> (pdf)</listitem>
+<listitem><ulink url="index.html">How to use create(..) method</ulink> (pdf)</listitem>
+<listitem>API
+<itemizedlist>
+<listitem><ulink url="http://www.jboss.org/404.html">VpeAbstractTemplate</ulink></listitem>
+<listitem><ulink url="http://www.jboss.org/404.html">VpeTemplate</ulink></listitem></itemizedlist></listitem>
+<listitem><ulink url="http://www.jboss.org/404.html">Download</ulink> examples. The examples.zip file contains two
+ applications. The first application transforms the JSP source tag into visual tag (HTML). This application
+ is an Eclipse plug-in. Import as an Eclipse project. The second application is a Web applications which
+ uses the custom component (project with JSF Nature).</listitem>
+</itemizedlist>
+<para>Please send us an email to <ulink url="mailto:support@exadel.com">support(a)exadel.com</ulink> if you have
+ questions about this feature.</para>
+</section>
+
+
+<section id="HTML401Suppor421t">
+<?dbhtml filename="HTML4.01Support.html"?>
+<title>HTML 4.01 Support</title>
+</section>
+
+<section id="JSP2.0JSTL1.0And1.1Suppor52t">
+<?dbhtml filename="JSP2.0JSTL1.0And1.1Support.html"?>
+<title>JSP 2.0, JSTL 1.0/1.1 support</title>
+</section>
+-->
+
+ </section>
+
+ <section id="more_editors">
+
+ <title>More Editors</title>
+
+ <para>Besides Visual Page Editor JBDS is supplied with a huge range of various editors for
+ different file types: properties, TLD, web.xml, tiles, and so on.</para>
+ <section id="GraphicalPropertiesEditor">
+
+ <title>Graphical Properties Editor</title>
+
+ <para><property moreinfo="none">The Properties editor</property> allows you to work in two different
+ modes and also supports unicode characters.</para>
+
+ <para>To create a new properties file, in the Package Explorer view, select<emphasis>
+ <property moreinfo="none"> New > Properties File</property>
+ </emphasis> from the right-click context menu on the folder where you want to create
+ the file.</para>
+ <figure float="0">
+ <title>Selecting Properties File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can edit the file using a table-oriented "Properties"
+ viewer:</para>
+
+ <figure float="0">
+ <title>"Properties" Viewer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can also use a Source viewer for editing the file:</para>
+ <figure float="0">
+ <title>Source Viewer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="GraphicalTLDEditor">
+
+ <title>Graphical TLD Editor</title>
+
+ <para><property moreinfo="none">The TLD editor</property> comes with same features you will find in all
+ other JBoss Developer Studio editors:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Graphical and source edit modes</para>
+ </listitem>
+ <listitem>
+ <para>Validation and error checking</para>
+ </listitem>
+ </itemizedlist>
+ <section id="TreeView2">
+
+ <title>Tree view</title>
+
+ <figure float="0">
+ <title>Tree View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="SourceView1">
+
+ <title>Source view</title>
+
+ <para>You can easily switch from Tree to Source by selecting the Source tab at the
+ bottom of the editor.</para>
+
+ <figure float="0">
+ <title>Source View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can easily add a <property moreinfo="none">new tag</property>:</para>
+
+ <figure float="0">
+ <title>Adding a New Tag</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_6.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can also easily add a <property moreinfo="none">new attribute</property> to an existing
+ tag:</para>
+ <figure float="0">
+ <title>Adding a New Attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_7.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para><diffmk:wrapper diffmk:change="changed">Content assist is available when editing the file using the Source
+ viewer:</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_8.png" scale="65"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">In the Source viewer, if at any point a tag is incorrect or incomplete, an
+ error will be indicated next to the line and also in the Problems view
+ below.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Error Reporting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ </section>
+
+
+ <section id="GraphicalWebApplicationFileEditor">
+
+ <title>Graphical Web Application File (web.xml) Editor</title>
+
+ <para>The Web Application File editor comes with the same features you will find in all
+ other JBoss Developer Studio editors:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Graphical and source edit modes</para>
+ </listitem>
+ <listitem>
+ <para>Validation and error checking</para>
+ </listitem>
+ </itemizedlist>
+ <section id="TreeView1">
+ <title>Tree View</title>
+
+ <figure float="0">
+ <title>Tree View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can add any new elements right in the <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Tree
+ viewer</diffmk:wrapper></property>:</para>
+
+ <figure float="0">
+ <title>Adding New Elements</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="SourceView2">
+
+ <title>Source View</title>
+
+ <para>Switch to the <property moreinfo="none">Source viewer </property>to edit the web.xml file by
+ hand at any time:</para>
+
+ <figure float="0">
+ <title>Source View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ContentAssist">
+
+ <title>Content Assist</title>
+
+ <para>Content assist is available in the Source viewer. Simply click <emphasis>
+ <property moreinfo="none">CTRL-Space</property>
+ </emphasis> anywhere in the file.</para>
+
+ <figure float="0">
+ <title>Content Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_13.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ErrorCheckingAndValidation">
+
+ <title>Errors Checking and Validation</title>
+
+ <para>If errors occur anywhere in the file, small red dots will appear next to the
+ lines where the errors occurred. Also, note that the file is marked by a small x
+ in the Package Explorer view.</para>
+
+ <figure float="0">
+ <title>Errors Reporting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ </section>
+
+ <section id="CSSEditor">
+
+ <title>CSS Editor</title>
+
+ <para>The <property moreinfo="none">CSS editor</property> comes with the same features you will find in
+ all other JBoss Developer Studio editors.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Content assist</para>
+ </listitem>
+ <listitem>
+ <para>Validation and error checking</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>With the CSS (Cascading Style Sheet) editor, you can take advantage of code
+ prompting:</para>
+
+ <figure float="0">
+ <title>CSS Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_41.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <!-- <para>You can also use the Outline view next to the editor to navigate through the CSS
+ file:</para>
+
+ <figure>
+ <title>Outline View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_42.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ -->
+
+ <para>And you can also use the Properties view next to the editor to edit existing
+ stylesheet declaration properties:</para>
+
+ <figure float="0">
+ <title>Properties View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_43.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section id="JavaScriptEditor">
+
+ <title>JavaScript Editor</title>
+
+ <para>The <property moreinfo="none">JavaScript editor</property> includes a Preview viewer and a Source
+ viewer. In the Source viewer, you can use code assist:</para>
+
+ <figure float="0">
+ <title>JavaScript Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_44.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can also use the Source viewer with the Outline view to navigate around the
+ file:</para>
+
+ <figure float="0">
+ <title>Source Viewer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_45.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <!-- <section id="ImageViewer">
+
+ <title>Image Viewer</title>
+ <para>This simple image viewer allows you to view GIF and JPEG files individually in a
+ separate window:</para>
+
+ <figure>
+ <title>Image Viewer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_46.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section> -->
+ <section id="XSDEditor">
+
+ <title>XSD Editor</title>
+
+ <para>JBoss Developer Studio comes with an <property moreinfo="none">XSD Editor</property> for XML
+ Schema files. This editor comes from the Web Tools Project (WTP) (see <ulink url="http://www.eclipse.org/webtools/testtutorials/gettingstarted/GettingStart...">WTP Getting Started</ulink>).</para>
+
+ <para>To create a new XSD file, right-click a folder in the Package Explorer view,
+ select <emphasis>
+ <property moreinfo="none">New > Other...</property>
+ </emphasis> from the context menu and then select <emphasis>
+ <property moreinfo="none">XML > XML Schema</property>
+ </emphasis> in the dialog box.</para>
+
+ <figure float="0">
+ <title>Creating New XSD file</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_47.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The XSD Editor includes two viewers for working on the file, a Design viewer and a
+ Source viewer:</para>
+
+ <figure float="0">
+ <title>Source Viewer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_48.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">In the Design viewer, you can drill down on an element by double-clicking on
+ it:</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Design Viewer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_49.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">Various edit options are available when you right-click an element in the
+ diagram:</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Edit Options</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_50.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can also use the Properties view to edit a selected element:</para>
+
+ <figure float="0">
+ <title>Properties View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_51.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can also use a Source viewer for the file. In this viewer, along with direct
+ editing of the source code, you can also edit the file by using the Properties view
+ on the right:</para>
+
+ <figure float="0">
+ <title>Source Viewer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_52.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section id="SupportforXMLSchema">
+
+ <title>Support for XML Schema</title>
+
+ <para><diffmk:wrapper diffmk:change="changed">JBoss Developer Studio fully supports XML files based on schemas as well as
+ DTDs:</diffmk:wrapper></para>
+ <figure float="0">
+ <title>XML File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/more_editors/more_editors_53.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ </section>
+
+</chapter>
+
+
+<chapter id="palette" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jsf/docs/userguide/en/modules/palette.xml" xreflabel="palette">
+ <?dbhtml filename="palette.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>Jboss Tools palette</keyword>
+ <keyword>tags</keyword>
+ <keyword>JSP page</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>JBoss Tools Palette</title>
+ <para>This chapter will introduce you to the functionality provided by <property moreinfo="none">JBoss Tools
+ Palette</property>. The Palette allows you to quickly and easily create your JSP or JSF
+ pages. Now you can do it more faster without additional knowledge.</para>
+ <para>The <property moreinfo="none">JBoss Tools Palette</property> allows you to:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Insert tags into a JSP or JSF page with one click</para>
+ </listitem>
+ <listitem>
+ <para>Add custom and 3rd party tags</para>
+ </listitem>
+ </itemizedlist>
+ <para>The JBoss Tools Palette contains a developer's project tag libraries and provides
+ possibility to add any tag libraries to it. Also you can choose a necessary one from the
+ list of already existed tag libraries:</para>
+ <itemizedlist>
+ <listitem>
+ <para>HTML</para>
+ </listitem>
+ <listitem>
+ <para>JBoss</para>
+ </listitem>
+ <listitem>
+ <para>JSF</para>
+ </listitem>
+ <listitem>
+ <para>JSTL</para>
+ </listitem>
+ <listitem>
+ <para>MyFaces</para>
+ </listitem>
+ <listitem>
+ <para>Oracle ADF Faces</para>
+ </listitem>
+ <listitem>
+ <para>Struts</para>
+ </listitem>
+ <listitem>
+ <para>XHTML</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Default View of The JBoss Tools Palette</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>By default the Palette is represented in Web Development Perspective with four groups. If
+ you can't see it, select <emphasis>
+ <property moreinfo="none">Window > Show View Other... > JBoss Tools Web > JBoss
+ Tools Palette</property>
+ </emphasis> from the menu bar.</para>
+
+ <section id="PaletteOptions">
+ <?dbhtml filename="PaletteOptions.html"?>
+ <title>Palette Options</title>
+ <para>To facilitate your work, you can configure the Palette in your own way, by selecting
+ the corresponding icon on the Palette toolbar.</para>
+ <para>There is a possibility to configure the JBoss Tools Palette:</para>
+ <itemizedlist>
+ <listitem>
+ <para> to <property moreinfo="none">edit the palette</property> content by adding, removing or
+ changing the palette elements</para>
+ </listitem>
+ <listitem>
+ <para> to <property moreinfo="none">show/hide groups</property>, subgroups</para>
+ </listitem>
+ <listitem>
+ <para>to <property moreinfo="none">import groups</property>, subgroups</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Palette Buttons</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <section id="PaletteEditor">
+ <?dbhtml filename="PaletteEditor.html"?>
+ <title>Palette Editor</title>
+ <para>JBoss Tools Palette contains existing libraries of tags, thus the
+ <property moreinfo="none">Palette editor</property> is intended to work with them or create your
+ new one, as well.</para>
+ <para>To open the editor, click on the <emphasis>
+ <property moreinfo="none">Palette Editor</property>
+ </emphasis> icon: <figure float="0">
+ <title>Palette Editor Icon</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ <para>The window has two parts. There is a reflected grouped list of components on the
+ left side of the palette editor. Each group is divided into multiple groups, every
+ of which is a tag library. The right side of the palette editor is an editing window
+ where it's possible to change values of group or tag library attributes
+ that you've chosen on the left part of the window. </para>
+ <para>It can also be done by right click and using <emphasis>
+ <property moreinfo="none">Edit…</property>
+ </emphasis> option.</para>
+ <literallayout class="normal" format="linespecific"></literallayout>
+ <para> For example, <property moreinfo="none">JSF</property> group consists of
+ <property moreinfo="none">Core</property>, <property moreinfo="none">Facelets</property>, <property moreinfo="none">HTML</property>
+ tag libraries and the attributes as <property moreinfo="none">name</property>,
+ <property moreinfo="none">description</property> and <property moreinfo="none">hidden</property> which are available
+ for editing: </para>
+ <figure float="0">
+ <title>Tag Libraries of the JSF Group</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_24.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The Palette Editor provides the following possibilities when working with existing
+ tags or icons:</para>
+ <itemizedlist>
+ <listitem>
+ <para>to work with a set of icons</para>
+ <para><emphasis>
+ <property moreinfo="none">Icons</property>
+ </emphasis> is the root folder for the icon sets. The first step is creating
+ the icon set. Right click on the <emphasis>
+ <property moreinfo="none">Icons</property>
+ </emphasis> folder and select <emphasis>
+ <property moreinfo="none">Create > Create Set...</property>
+ </emphasis></para>
+ <para>Set the value of the name in the <emphasis>
+ <property moreinfo="none">Add Icons</property>
+ </emphasis> window and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button. A new element will appear in the list.</para>
+ <figure float="0">
+ <title>Creating a Set of Icons</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Also you can delete the set. Right click on the set of icons that you wish
+ to remove and chose the <emphasis>
+ <property moreinfo="none">Delete Set</property>
+ </emphasis> option from the pop-up menu or click the <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis> keyboard button.</para>
+ </listitem>
+ <listitem>
+ <para>to edit icons in the chosen set</para>
+ <para>When the set of icons is created, new icons can be imported to it. Choose
+ the required set and select the option <emphasis>
+ <property moreinfo="none">Create > Import Icon... </property>
+ </emphasis> from the pop-up menu that appears after you right-click on a
+ folder.</para>
+ <figure float="0">
+ <title>Creating Icons</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_18.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Set the name of the icon and the path and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button.</para>
+ </listitem>
+ <listitem>
+ <para>to work with a group of tag libraries</para>
+ <para>The first step in work with the editor is creating a group of libraries.
+ It's very easy to do, right mouse button click on the <emphasis>
+ <property moreinfo="none">Palette</property>
+ </emphasis> folder and select <emphasis>
+ <property moreinfo="none">Create > Create Group…</property>
+ </emphasis></para>
+ <para>Set a name of a group in the <property moreinfo="none">Create Group</property> window and
+ click <emphasis>
+ <property moreinfo="none">OK</property>
+ </emphasis> button. A new element will appear at the end of the list.</para>
+ <figure float="0">
+ <title>Creating a Group of Tag Libraries</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_19.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>You are allowed to edit or delete a group, as well. If you'd like
+ to change attributes of a group, use the right editing window of the palette
+ editor or the <emphasis>
+ <property moreinfo="none">Edit...</property>
+ </emphasis> option, like it was mentioned before. In order to remove the
+ group, right click on the group that you wish to remove and chose the <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis> option or click the <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis> keyboard button.</para>
+ <important>
+ <title>Important:</title>
+ <para>The removal option is enabled only for custom folders.</para>
+ </important>
+ </listitem>
+ <listitem>
+ <para>to work with a tag library</para>
+ <para>The group maintains a list of tag libraries. If you'd like to
+ create your own library, click right mouse button on the group and choose <emphasis>
+ <property moreinfo="none">Create Group…</property>
+ </emphasis> option.</para>
+ <figure float="0">
+ <title>Creating a tag library</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_20.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>After setting the attribute name and the path of the icon, click <emphasis>
+ <property moreinfo="none">Ok</property>
+ </emphasis> button.</para>
+ <note>
+ <title>Note:</title>
+ <para>If you do not choose an icon the default one will be assigned.</para>
+ </note>
+ <para>You are allowed to edit or delete the tag library, as well. If
+ you'd like to change attributes of the library or choose another
+ icon, use the right editing window of the palette editor or the <emphasis>
+ <property moreinfo="none">Edit...</property>
+ </emphasis> option. In order to remove the tag library, right click on the
+ library that you wish to remove and chose the <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis> option or click the <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis> keyboard button.</para>
+ <important>
+ <title>Important:</title>
+ <para>The removal option is enabled only for custom tag libraries.</para>
+ </important>
+ </listitem>
+ <listitem>
+ <para>to work with a tag element</para>
+ <para>When the library folder is created, new tags can be added to it. Choose
+ the required library and select the option <emphasis>
+ <property moreinfo="none">Create > Create Macro…</property>
+ </emphasis> from the pop-up menu that appears after you right-click on a
+ folder.</para>
+ <figure float="0">
+ <title>Creating a tag element</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_21.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>In the <property moreinfo="none">Add Palette Macro</property> window, you can configure
+ the tag element. Attribute <emphasis>
+ <property moreinfo="none">Name</property>
+ </emphasis> is mandatory to fill and it will be the name of the tag element.
+ Other settings are optional. You can choose the icon and set the <emphasis>
+ <property moreinfo="none">Start Text</property>
+ </emphasis> and the <emphasis>
+ <property moreinfo="none">End Text</property>
+ </emphasis> for your tag element. If your tag text is too long, use the <emphasis>
+ <property moreinfo="none">Change...</property>
+ </emphasis> button to see it all. For <emphasis>
+ <property moreinfo="none">start text</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">end text</property>
+ </emphasis> there is a possibility to control the cursor position by using
+ "|" symbol.</para>
+ <figure float="0">
+ <title>Parameters of the Palette element</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_23.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>After all the attributes are set, click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button.</para>
+ <note>
+ <title>Note:</title>
+ <para>If you do not choose an icon the default one will be assigned.</para>
+ </note>
+ <para>You are also allowed to edit or delete the tag. If you'd like to
+ change the attributes of the tag or choose another icon for it, use the
+ right editing window of the palette editor or the <emphasis>
+ <property moreinfo="none">Edit...</property>
+ </emphasis> option from the pop-up menu. In order to remove the tag, right
+ click on the tag that you wish to remove and chose the <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis> option or click the <emphasis>
+ <property moreinfo="none">Delete</property>
+ </emphasis> keyboard button.</para>
+ <important>
+ <title>Important:</title>
+ <para>The removal option is enabled only for custom tags. JBoss Palette tags
+ can not be removed but can be modified.</para>
+ </important>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+ <section id="show_hide">
+ <?dbhtml filename="Show/Hide.html"?>
+ <title>Show/Hide</title>
+ <para><emphasis>
+ <property moreinfo="none">Show/Hide</property>
+ </emphasis> is a very useful feature that allows you to control the number of tag
+ groups that are shown on the palette.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Show/Hide</property>
+ </emphasis> button, at the top right side of the JBoss Tools Palette.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Show/Hide Button</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>In the dialog Show/Hide Drawers check the groups the libraries of which
+ you want to be shown on the palette:</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Show/Hide Drawers</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>If libraries are not displayed in the palette, check whether they are selected.
+ Click the plus sign to expand the libraries of the group and make sure that a tick
+ is put next to the wanted libraries.</para>
+ <!-- <para>(When you deactivate the group(s), the JBoss Palette remembers your last chose.
+ The libraries… )</para>
+ -->
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis><property moreinfo="none">OK</property>.</emphasis> The new groups will
+ now be shown on the palette:</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>New Added Groups</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The names of the elements are compound. The first part is the group name and the
+ second is the library name.</para>
+ </section>
+ <section id="Import">
+ <?dbhtml filename="Import.html"?>
+ <title>Import</title>
+ <para>The Import button lets you add a custom or 3rd party tag library to JBoss Tools
+ Palette. Find out more information on how to add particular tags see the <link linkend="ImportButton521">Adding Custom JSF Tags</link> section.
+ <!--<link linkend="CreatingAndWorkingCustomCapability">Learn how to import</link>. --></para>
+ </section>
+ </section>
+ <section id="UsingThePaletteIncludingOneClickTagInsertion">
+ <?dbhtml filename="UsingThePaletteIncludingOneClickTagInsertion.html"?>
+ <title>Using the Palette</title>
+ <section id="InsertingTagsIntoAJSPFile">
+ <?dbhtml filename="InsertingTagsIntoAJSPFile.html"?>
+ <title>Inserting Tags into a JSP File</title>
+ <para>A new tag can be added into any text file including jsp, htm, html and xhtml.</para>
+ <para>Let's do it. Open your JSP file and place the cursor in a place where
+ you'd like to add a tag and then click that tag in the palette. In the
+ <property moreinfo="none">Insert Tag</property> window, that appears, you can set the value of<emphasis>
+ <property moreinfo="none">general</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">advanced</property>
+ </emphasis> attributes of the tag that you chose.</para>
+ <figure float="0">
+ <title>Inserting Tag</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_25.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>In the example below, the <emphasis>
+ <property moreinfo="none">commandButton</property>
+ </emphasis> tag has been inserted.</para>
+ <figure float="0">
+ <title>Inserting Tag</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_2.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <tip>
+ <title>Tip:</title>
+ <para>if you place the cursor over any tag, a balloon hint is shown with all the
+ <emphasis role="italic">
+ <property moreinfo="none">"tag"</property>
+ </emphasis> attributes.</para>
+ </tip>
+ <para>The cursor position after adding a tag into a file is specified by
+ "|" symbol in the tag template on the right in the Palette Editor
+ window. </para>
+ <figure float="0">
+ <title>Palette Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> Above you can see where the cursor position for <emphasis>
+ <property moreinfo="none">HTML > Form > input</property>
+ </emphasis> is set. Thus, after adding this tag into your file the cursor will be in
+ the attribute "type". Then, you can straight use the combination
+ of buttons <property moreinfo="none">Ctrl + Space</property> to inquire about a prompting. </para>
+ <figure float="0">
+ <title>Cursor position</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_16.png" scale="50"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="AddingCustomJSFTagsToTheRedHatPalette7433">
+ <?dbhtml filename="AddingCustomJSFTagsToTheJBossToolsPalette.html"?>
+ <title>Adding Custom JSF Tags to the JBoss Tools Palette</title>
+
+ <para>There are two ways to add any custom or 3rd party tag library to the
+ <property moreinfo="none">JBoss Tools Palette</property>:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Drag-and-drop from the Web Projects view</para>
+ </listitem>
+ <listitem>
+ <para>The Import button on the JBoss Tools Palette</para>
+ </listitem>
+ </itemizedlist>
+ <para>Before you can add your custom component library, you need to make sure it is
+ included in your project. Either place the <emphasis role="italic">
+ <property moreinfo="none">".tld"</property>
+ </emphasis> file or the <emphasis role="italic">
+ <property moreinfo="none">".jar"</property>
+ </emphasis> that includes your tag library under the lib folder in your project. </para>
+ <section id="Drag_and_Drop65332">
+ <?dbhtml filename="DragAndDrop.html"?>
+ <title>Drag-and-Drop</title>
+ <para>Switch to the Web Projects view and expand the Tag Libraries folder. If the
+ view is not active, select <emphasis>
+ <property moreinfo="none">Window > Show View > Web Projects</property>
+ </emphasis> from the menu bar.</para>
+ <figure float="0">
+ <title>Web Projects View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Also make sure that the JBoss Tools Palette is open. Select the tag library
+ that you want to add and simply drag-and-drop it on to the JBoss Tools Palette.</para>
+ <para>You will see the following dialog window. As you can see JBoss Developer
+ Studio takes care of all the details. Chosen <emphasis>
+ <property moreinfo="none">TLD file</property>
+ </emphasis>, <emphasis>
+ <property moreinfo="none">name</property>
+ </emphasis> and <emphasis>
+ <property moreinfo="none">prefix</property>
+ </emphasis> of the library and <emphasis>
+ <property moreinfo="none">Library URL</property>
+ </emphasis> are detected, thus just need to set the <emphasis>
+ <property moreinfo="none">Group</property>
+ </emphasis> name to which you wish to place this tag library. You can either add
+ this tag library to an existing Group or just create a new one.</para>
+ <figure float="0">
+ <title>Import Tags From TLD File Form</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Once you are finished, you will see the new tag library added to the JBoss
+ Tools Palette.</para>
+ <figure float="0">
+ <title>JBoss Tools Palette with New Tag Library</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="ImportButton521">
+ <?dbhtml filename="ImportButton.html"?>
+ <title>Import Button</title>
+ <para>The same you can do with <emphasis>
+ <property moreinfo="none">Import</property>
+ </emphasis> button. You can see this button at the top right side of the JBoss
+ Tools Palette.</para>
+ <figure float="0">
+ <title>Import Button</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>By clicking on the <emphasis>
+ <property moreinfo="none">Import button</property>
+ </emphasis> you will see the Import Tag window a similar like in the <link linkend="Drag_and_Drop65332"> Drag-and-Drop</link> method. Set the name and
+ prefix of the library and Library URL. Also you need to set the Group name to
+ which you'd like to add your tag library. And like in the previous
+ method you can add it to an existing Group or create a new one. On this Import
+ Tag form you can use <emphasis>
+ <property moreinfo="none">Browse...</property>
+ </emphasis>button to locate the tag library that you want to add:</para>
+ <figure float="0">
+ <title>Select TLD File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ </section>
+ </section>
+ <section id="RichFacesSupport">
+ <?dbhtml filename="RichFacesSupport.html"?>
+ <title>RichFaces Support</title>
+ <para><property moreinfo="none">JBoss Developer Studio</property> comes with a tight integration with <ulink url="http://labs.jboss.com/jbossrichfaces/">RichFaces component framework</ulink>.
+ RichFaces and Ajax4jsf tag libraries in <link linkend="palette">JBoss Tools
+ Palette</link> always exist.</para>
+
+ <figure float="0">
+ <title>RichFaces Components</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/palette/palette_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>To start using <property moreinfo="none">RichFaces</property> components as well as
+ <property moreinfo="none">Ajax4jsf</property> ones in JBDS you should first put <emphasis>
+ <property moreinfo="none">richfaces-*.jar</property>
+ </emphasis> files into the <emphasis>
+ <property moreinfo="none">/lib</property>
+ </emphasis> folder of your project.</para>
+ <!-- this palette is not dynamic and is not changed from file to file. -->
+
+ <note>
+ <title>Note:</title>
+
+ <para>Currant version of <property moreinfo="none">JBoss Developer Studio</property> (i. e. 1.1.0GA)
+ includes <ulink url="http://www.jboss.org/jbossrichfaces/downloads/">RichFaces
+ 3.2.2</ulink>. The JBoss Tools 3.0.0.beta1 comes with <ulink url="http://www.jboss.org/jbossrichfaces/downloads/">RichFaces 3.1.3</ulink> and
+ partly support 3.2 version of the component framework. If you need to use the latest
+ version of the component framework you should import it into the Palette like any
+ other <link linkend="AddingCustomJSFTagsToTheRedHatPalette7433">custom tag
+ library</link>.</para>
+ </note>
+
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>It may be helpful for you to look through the <ulink url="http://docs.jboss.org/tools/movies/demos/rich_faces_demo/rich_faces_demo.htm">movie</ulink> which covers a creation of a jsf application with simple content
+ using the RichFaces components.</para>
+ </section>
+
+ </section>
+</chapter>
+
+
+<chapter id="web_projects" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jsf/docs/userguide/en/modules/web_projects.xml" xreflabel="web_projects">
+ <?dbhtml filename="web_projects.html"?>
+<title>Web Projects View</title>
+<para><property moreinfo="none">Web Projects</property> is a special view that comes with JBoss Developer Studio.</para>
+<para>If the Web Projects view's tab is not visible next to the Package Explorer tab, select <emphasis><property moreinfo="none">Window > Show View > Other > JBoss Tools Web > Web Projects</property></emphasis> from the menu bar.</para>
+<para>With the Web Projects view, you can:</para>
+
+<itemizedlist>
+<listitem><para>Visualize the project better because the project artifacts for JSF and Struts projects are organized and displayed by function.</para></listitem>
+<listitem>
+ <para>Select these kinds of items to drag and drop into JSP pages:</para>
+ <itemizedlist>
+ <listitem><para>JSF managed bean attributes</para></listitem>
+<listitem><para>JSF navigation rules outcomes</para></listitem>
+<listitem><para>Property file values</para></listitem>
+<listitem><para>Tag library files</para></listitem>
+<listitem><para>Tags from tag libraries</para></listitem>
+<listitem><para>JSP page links</para></listitem>
+</itemizedlist>
+</listitem>
+<listitem><para>Use context menus to develop the application (all create and edit functions are available)</para></listitem>
+<listitem><para>Use icon shortcuts to create and import JSF and Struts projects</para></listitem>
+<listitem><para>Expand and inspect tag library files</para></listitem>
+<listitem><para><link linkend="AddingCustomJSFTagsToTheRedHatPalette7433">Select custom and third-party tag libraries to drag and drop onto
+the JBoss Tools Palette</link></para></listitem>
+</itemizedlist>
+
+<section id="ProjectOrganization">
+
+<title>Project Organization</title>
+<para>The Web Projects view organizes your project in a different way. The physical structure of course stays the same. The new organization combines common project artifacts together which makes it simpler to
+locate what you are looking for and develop.</para>
+
+<para>The screen shot below shows a JSF project and a Struts project in Web Projects view.</para>
+<figure float="0">
+ <title>Web Projects View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+</section>
+<section id="DragAndDrop">
+
+<title>Drag and Drop</title>
+ <para>Web Projects View has a drag and drop option that can be used for property, managed bean attributes, navigation rules, tag library file declaration and JSP Pages.</para>
+<section id="ForAProperty">
+
+<title>For a Property</title>
+ <para>Expand the <property moreinfo="none">Resources Bundles</property> folder that holds all the Property files in your project. Select the file from which you want to add the property and then select the property.</para>
+<para>We will be dragging and dropping a property file value inside the outputText tag for the <emphasis role="italic"><property moreinfo="none">"value"</property></emphasis> attribute.</para>
+<figure float="0">
+<title>OutputText Tag</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_2.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Select the property:</para>
+<figure float="0">
+<title>Selecting Property</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_3.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+ <para>Drag the property and drop it between the quotes for the value attribute in the JSP file. Notice that JBoss Developer Studio added the correctly formatted expression for referring to the property value <emphasis><property moreinfo="none">#{Message.header}</property></emphasis> automatically.</para>
+ <figure float="0">
+<title>Inserted Property</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_4.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>You can actually place the tag anywhere in the page, not just inside an existing tag. In this case,
+ JBoss Developer Studio will place the complete tag <emphasis><property moreinfo="none"><h:outputText value="#{Message.header}"/></property></emphasis> in the page.</para>
+ </section>
+<section id="ForManagedBeanAttributes">
+
+<title>For Managed Bean Attributes</title>
+
+<para>Select a <emphasis role="italic"><property moreinfo="none">"managed bean"</property></emphasis> attribute and then drag and drop it onto the JSP page. We are going to place it inside the <emphasis role="italic"><property moreinfo="none">"value"</property></emphasis> attribute of the inputText tag.</para>
+<figure float="0">
+<title>Selecting Managed Bean Attribute</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_5.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Once again, JBoss Developer Studio adds the correct expression, <emphasis>#{user.name}</emphasis>.</para>
+<figure float="0">
+<title>Added Expression</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_6.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+</section>
+<section id="NavigationRules">
+
+<title>Navigation Rules</title>
+
+<para>Select the navigation rule under <emphasis><property moreinfo="none">Configuration > faces-config.xml > Navigation Rules</property></emphasis>:</para>
+<figure float="0">
+<title>Selecting Navigation Rule</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_7.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Drag and drop it inside the commandButton tag:</para>
+<figure float="0">
+<title>Naviagation Rule in CommandButton Tag</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_8.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>You could do the same if the navigation rule was defined inside an action method:</para>
+<figure float="0">
+<title>Navigation Rule in Action Method</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_9.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Here is how it would look after drag and drop:</para>
+<figure float="0">
+<title>Inserted Navigation Rule</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_10.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+</section>
+<section id="ForATagLibraryFileDeclaration">
+
+<title>For a Tag Library File Declaration</title>
+
+<para>Select a TLD file:</para>
+<figure float="0">
+<title>Selecting TLD File</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_11.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<para>Then drag and drop it onto the JSP page to add a declaration at the top of the page:</para>
+<figure float="0">
+<title>Inserted TLD File</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_12.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+</section>
+<section id="ForJSPPages">
+
+<title>For JSP Pages</title>
+
+<para>You can also drag and drop a JSP page path to a JSP page to create a forward as shown:</para>
+<figure float="0">
+<title>Creating JSP Forward</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_13.png" scale="80"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+</section>
+</section>
+<section id="DevelopingTheApplication">
+
+<title>Developing the Application</title>
+
+<para>It is also possible to develop your application right from the Web Projects view.
+Simply right-click any node in the tree and select an appropriate action from the context menu. For instance, this screen capture shows creating a new navigation rule.</para>
+<figure float="0">
+<title>Creating New Navigation Rule</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_14.png" scale="90"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+</section>
+<section id="ExpandingTagLibraryFiles">
+
+<title>Expanding Tag Library Files</title>
+
+<para>You can easily expand any TLD file in the project. Browse to the Tag Libraries folder. Right-click a TLD file and select <emphasis><property moreinfo="none">Expand</property></emphasis>. The TLD file will now be expanded.</para>
+
+<para>You can then select any tag and drag it onto a JSP page.</para>
+<figure float="0">
+<title>Expanding Tag Library File</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_15.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+</section>
+<section id="DragAndDropTagLibrariesOnToRedHatPalette">
+
+<title>Drag and Drop Tag Libraries on to JBoss Tools Palette</title>
+
+ <para>Read <link linkend="AddingCustomJSFTagsToTheRedHatPalette7433">Adding Tag Libraries</link> to learn about this.</para>
+</section>
+<section id="CreateAndImportJSFAndStrutsProjects">
+<title>Create and Import JSF and Struts Projects</title>
+
+<para>You can also create and import JSF and Struts project from Web Projects view by selecting the
+buttons below.</para>
+
+<para>From left to right:</para>
+
+<orderedlist continuation="restarts" inheritnum="ignore">
+<listitem><para>Create New JSF Project</para></listitem>
+<listitem><para>Import JSF Project</para></listitem>
+<listitem><para>Create New Struts Project</para></listitem>
+<listitem><para>Import Struts Project</para></listitem>
+</orderedlist>
+<figure float="0">
+<title>Web Projects View Buttons</title>
+<mediaobject>
+ <imageobject>
+ <imagedata fileref="images/web_projects/web_projects_16.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+</section>
+
+
+
+<chapter id="preferences" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/jsf/docs/userguide/en/modules/preferences.xml" xreflabel="preferences">
+ <?dbhtml filename="preferences.html"?>
+ <title>JBoss Tools Preferences</title>
+
+ <para>Configuring the various <property moreinfo="none">JBoss Developer Studio</property> features is done via
+ the <property moreinfo="none">Preferences</property> screen by selecting <emphasis>
+ <property moreinfo="none">Window > Preferences > JBoss Tools</property>
+ </emphasis> from the menu bar.</para>
+ <figure float="0">
+ <title>Preferences are included in this dialog.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>From this screen, you can select these more specific sets of <property moreinfo="none">JBoss Tools
+ preferences</property>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link linkend="PackagingArchives">Packaging Archives</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="Editors">Editors</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="VisualPageEditor2">Visual Page Editor</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="el_variables">El Variables</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="JSF">JSF</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="JSFPage">JSF Page</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="JSFPropject">JSF Propject</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="JSFFlowDiagram">JSF Flow Diagram</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="Seam">Seam</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="SeamValidator">Seam Validator</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="Struts">Struts</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="struts_automation">Struts Automatic</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="Plug-inInsets">Plug-in Insets</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="ResourceInsets">Resource Insets</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="StrutsCustomization">Struts Customization</link>
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <para>
+ <link linkend="StrutsProject">Struts Project</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="StrutsSupport">Struts Support</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="StrutsPages">Struts Pages</link>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <link linkend="StrutsFlowDiagram">Struts Flow Diagram</link>
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <para>
+ <link linkend="tiles_diagram">Tiles Diagram</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="Verification">Verification</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">The </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Preferences</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> dialog </diffmk:wrapper><emphasis diffmk:change="added"><diffmk:wrapper diffmk:change="added">( </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Window >
+ Preferences</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">) </diffmk:wrapper></emphasis><diffmk:wrapper diffmk:change="added"> also allows to adjust settings for </diffmk:wrapper><link diffmk:change="added" linkend="JBossServerPreferences"><diffmk:wrapper diffmk:change="added">JBoss Server</diffmk:wrapper></link><diffmk:wrapper diffmk:change="added"> and </diffmk:wrapper><link diffmk:change="added" linkend="XDoclet"><diffmk:wrapper diffmk:change="added">XDoclet</diffmk:wrapper></link><diffmk:wrapper diffmk:change="added"> module.</diffmk:wrapper></para>
+
+ <section id="PackagingArchives">
+ <?dbhtml filename="PackagingArchives.html"?>
+ <title>Packaging Archives</title>
+
+ <para>Fallow to <emphasis>
+ <property moreinfo="none">JBoss Tools > Packaging Archives</property>
+ </emphasis> to open the page for changing Packaging Archives preferences.</para>
+ <para>Here you can determine settings for Project Packages view and core preferences.</para>
+
+ <figure float="0">
+ <title>Packaging Archives</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The next table lists all available preferences for Packaging Archives and their
+ description.</para>
+
+ <table>
+ <title>Packaging Archives Preferences</title>
+
+ <tgroup cols="3">
+
+ <colspec align="left" colnum="1" colwidth="2*"></colspec>
+ <colspec colnum="2" colwidth="4*"></colspec>
+ <colspec colnum="3" colwidth="2*"></colspec>
+
+ <thead>
+ <row>
+ <entry>Option</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Enable incremental builder</entry>
+ <entry>Uncheck this option if you don't want to enable incremental
+ builder for your resources</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Show full output path next to packages</entry>
+ <entry>This option allows you to show or hide an output path next to
+ packages
+ <!--(<link linkend="full_outputpath_for_packages">See the
+ figure</link>)-->.</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Show the full root directory of filesets</entry>
+ <entry>If on, the full root directory is displayed next to filesets.
+ Otherwise, it's hidden
+ <!--(<link
+ linkend="full_rootdir_for_filesets">See the figure</link>)-->.</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Show project at the root</entry>
+ <entry>This option allows you to choose whether to display a project name at
+ the root of the packages or not. When checked, 'Show all
+ projects that contain packages' is enabled
+ <!--(<link
+ linkend="project_at_the_root">See the figure</link>)-->.</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Show all projects that contain packages</entry>
+ <entry>Selecting this setting enables the Projects Archiving view to show or
+ hide all projects that contain packages. The option is available when
+ the previous one is checked.</entry>
+ <entry>Off</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <!--
+ <figure id="full_outputpath_for_packages">
+ <title>Show Full Output Path next to Packages</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure id="full_rootdir_for_filesets">
+ <title>Show the Full Root Directory of Filesets</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure id="project_at_the_root">
+ <title>Show Project at the root</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+-->
+
+ </section>
+
+ <!--section id="CodeAssist">
+ <?dbhtml filename="CodeAssist.html"?>
+ <title>CodeAssist</title>
+ <para>Select <emphasis>
+ <property>JBoss Tools > XDoclet > Code Assist</property>
+ </emphasis> to see Code Assist preference page.</para>
+ <para>Here is what the Code Assist preference page looks like: </para>
+ <figure>
+ <title>CodeAssist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section-->
+
+ <section id="Editors">
+ <?dbhtml filename="Editors.html"?>
+ <title>Editors</title>
+ <para>To adjust settings common for all editors supplied with <property moreinfo="none">JBoss Developer
+ Studio</property> you should select <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Editors</property>.</emphasis></para>
+
+ <figure float="0">
+ <title>Editors</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On the Editors page the following preferences are available:</para>
+
+ <table>
+
+ <title>Editors Preferences</title>
+ <tgroup cols="3">
+
+ <colspec align="left" colnum="1" colwidth="2*"></colspec>
+ <colspec colnum="2" colwidth="4*"></colspec>
+ <colspec colnum="3" colwidth="2*"></colspec>
+
+ <thead>
+ <row>
+ <entry>Option</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Always use JBoss Tools editors with Open option</entry>
+ <entry></entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Show warning when project has no JBoss Tools capabilities</entry>
+ <entry>Check this option to be sure that any JBoss Tools editor fully
+ available for a particular type of file. If no, you'll be
+ warned about this.</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Use Source tab as a default for multi-tab editors</entry>
+ <entry><diffmk:wrapper diffmk:change="changed">If on, an editor will open the files in the Source view by
+ default</diffmk:wrapper></entry>
+ <entry>Off</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ </section>
+
+ <section id="VisualPageEditor2">
+ <?dbhtml filename="VisualPageEditor.html"?>
+ <title>Visual Page Editor</title>
+ <para><emphasis>
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">JBoss Tools > Web > Editors > Visual Page
+ Editor</diffmk:wrapper></property>
+ </emphasis> screen allows you to control some aspects of the behavior of the
+ <property moreinfo="none">Visual Page Editor</property> (VPE) for JSF/HTML files.</para>
+ <figure float="0">
+ <title>Visual Page Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The next table lists the possible settings that you can adjust on the
+ <property moreinfo="none">General tab</property> of the VPE Preferences page.</para>
+
+
+ <table>
+
+ <title>VPE Preferences</title>
+ <tgroup cols="3">
+
+ <colspec align="left" colnum="1" colwidth="2*"></colspec>
+ <colspec colnum="2" colwidth="4*"></colspec>
+ <colspec colnum="3" colwidth="2*"></colspec>
+
+ <thead>
+ <row>
+ <entry>Option</entry>
+ <entry>Description</entry>
+ <entry>Default</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Show Border for Unknown Tags</entry>
+ <entry>The option allows to place the border around unknown tags or undo
+ this</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Show Non-Visual Tags</entry>
+ <entry>Check this box, if you want the editor shows non-visual elements on
+ the page you're editing</entry>
+ <entry>Off</entry>
+ </row>
+
+ <row>
+ <entry>Show Resource Bundles Usage as EL Expressions </entry>
+ <entry>If the option is checked, the editor will show EL expressions instead
+ of the resource values</entry>
+ <entry>Off</entry>
+ </row>
+
+ <row>
+ <entry>Always Prompts for Tag Attributes During Tag Insert </entry>
+ <entry>Having this option off, the dialog with possible attributes for
+ inserting tag won't appear if all its attributes are optional</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Show Selection Tag Bar</entry>
+ <entry>This option allows to show or hide the Selection Bar</entry>
+ <entry>On</entry>
+ </row>
+
+ <row>
+ <entry>Always Hide Selection Bar Without Prompt</entry>
+ <entry>Check this box if you don't want the confirmation window
+ appears when closing the Selection Bar</entry>
+ <entry>Off</entry>
+ </row>
+
+ <row>
+ <entry>Default Editor Tab</entry>
+ <entry>The option provides with a possibility to choose one of the following
+ views - Visual/Source, Source or Preview, as default when opening the
+ editor</entry>
+ <entry>Visual/Source</entry>
+ </row>
+
+ <row>
+ <entry>Size of Visual Editor Pane 0 – 100% </entry>
+ <entry>With the help of this scroll bar you can adjust the percentage rating
+ between the Source and Visual modes of the Visual/Source view</entry>
+ <entry>50%</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>On the <property moreinfo="none">Templates tab</property> you can edit or remove <link linkend="vpe_templating">VPE templates</link>.</para>
+ <figure float="0">
+ <title>Visual Page Editor Templates</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Select a template for editing from the available list and press <emphasis>
+ <property moreinfo="none">Edit</property>
+ </emphasis> button. It will pick up the <link linkend="template_dialog"><diffmk:wrapper diffmk:change="changed">Template
+ dialog</diffmk:wrapper></link> where you can adjust new settings.</para>
+ </section>
+
+ <section id="el_variables">
+ <?dbhtml filename="el_variables.html"?>
+ <title>El Variables</title>
+ <para>To specify necessary EL variables globally, i. e. for all projects and resources in
+ your workspace, you should go to <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > El Variables</property>. </emphasis></para>
+
+ <figure float="0">
+ <title>El Variables</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Click <emphasis>
+ <property moreinfo="none">Add...</property>
+ </emphasis> to set value for a new EL variable. In the appeared wizard you should
+ specify the global values and press <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis>.</para>
+
+ <figure float="0">
+ <title>Adding a Global El Variable</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <tip>
+ <title>Tip:</title>
+ <para>If you specify an equal variable in <link linkend="el_exp_para"><diffmk:wrapper diffmk:change="changed">VPE EL
+ dialog</diffmk:wrapper></link><diffmk:wrapper diffmk:change="changed"> and in Preference EL dialog, variable from preference dialog will
+ have priority.</diffmk:wrapper></para>
+ </tip>
+ </section>
+ <!--section id="JBossServers">
+ <?dbhtml filename="JBossServers.html"?>
+ <title>JBoss Servers</title>
+ <para>The following preferences can be changed on the <emphasis>
+ <property>JBoss Tools > JBoss Servers</property>
+ </emphasis> preference page.</para>
+ <para>Here is what the JBoss Servers preference page looks like:</para>
+ <figure>
+ <title>JBoss Servers</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section-->
+
+ <section id="JSF">
+ <?dbhtml filename="JSF.html"?>
+ <title>JSF</title>
+ <para>Select <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > JSF</property>
+ </emphasis> to get to the JSF Project specific preferences.</para>
+ <figure float="0">
+ <title>JSF</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="JSFPage">
+ <?dbhtml filename="JSF Page.html"?>
+ <title>JSF Pages</title>
+ <para>By selecting <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > JSF > JSF Pages</property>
+ </emphasis> you can add jsf pages or remove existing ones.</para>
+ <figure float="0">
+ <title>JSF Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="JSFPropject">
+ <?dbhtml filename="JSFPropject.html"?>
+ <title>JSF Project</title>
+ <para>Select <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > JSF > Project</property>
+ </emphasis> to see JSF Project preferences page.</para>
+ <para>On the <emphasis>
+ <property moreinfo="none">New Project</property>
+ </emphasis> tab you can set default values for <ulink url=" ../../jsf_tools_ref_guide/html_single/index.html#new_jsf_project">New JSF Project</ulink> wizard:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>
+ <property moreinfo="none">Version</property>
+ </emphasis> for setting the default JSF Environment</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>
+ <property moreinfo="none">Project Template</property>
+ </emphasis> so as <property moreinfo="none">New JSF Project wizard</property> shows this
+ template as default for the chosen JSF Environment</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>
+ <property moreinfo="none">Project Root</property>
+ </emphasis> for specifying default location for a new JSF project</para>
+ <para>If you check <emphasis>
+ <property moreinfo="none">Use Default Path</property>
+ </emphasis> here, this box will be also checked in the <property moreinfo="none">New JSF Project
+ wizard</property>.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>
+ <property moreinfo="none">Servlet Version</property>
+ </emphasis> for setting the default Servlet version of a new JSF project</para>
+ <para>Here it's also possible to define whether to register Web Context in <emphasis>
+ <property moreinfo="none">server.xml</property>
+ </emphasis> while organizing a new project or not. Check the proper box in order
+ to do that.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>New JSF Propject Preferences</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On the <emphasis>
+ <property moreinfo="none">Import Project</property>
+ </emphasis> tab in the JSF Project screen you can determine the default Servlet version
+ for the <ulink url=" ../../Exadel-migration/html_single/index.html#import_jsf_screen">Import JSF Project</ulink>
+ wizard and also whether to register Web Context in <emphasis>
+ <property moreinfo="none">server.xml</property>
+ </emphasis> or not.</para>
+
+ <figure float="0">
+ <title>Import JSF Propject Preferences</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="JSFFlowDiagram">
+ <?dbhtml filename="JSFFlowDiagram.html"?>
+ <title>JSF Flow Diagram</title>
+ <para>Selecting <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Editors > JSF Flow Diagram</property>
+ </emphasis> allows you to specify some aspects of the Diagram mode of the JSF
+ configuration file editor.</para>
+
+ <figure float="0">
+ <title>JSF Flow Diagram</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_15.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The first two items control the background grid for the diagram. The next two items
+ allow you to control the appearance of the labels for views (pages) and the transitions
+ between views. For these two items, clicking the <emphasis>
+ <property moreinfo="none">Change... </property>
+ </emphasis>button allows you to assign a font with a dialog box.</para>
+
+ <para>The first check box determines whether a view in the diagram that doesn't have a
+ transition connecting it to another view yet should be written to the source code as a
+ partial navigation rule. The next check box determines whether the diagram cursor
+ reverts immediately to the standard selection mode after it's used in the
+ transition-drawing mode to draw a transition. Finally, the last two check boxes concern
+ shortcuts. A shortcut is a transition that is there but isn't actually displayed in the
+ diagram as going all the way to the target view it's connected to, in order to make the
+ diagram clearer. With the check boxes, you can decide whether to display a small
+ shortcut icon as part of the shortcut and also whether to display the target view as a
+ label or not.</para>
+ <figure float="0">
+ <title>Add View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_16.png" scale="75"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Selecting the Add Page tab in the JSF Flow Diagram screen allows you to determine the
+ default template and file extension for views (pages) you add directly into the diagram
+ using a context menu or the view-adding mode of the diagram cursor.</para>
+ </section>
+
+ <section id="label_decorations">
+ <title>Label Decorations</title>
+
+ <para>The Label Decorations page is opened from <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Label Decorations</property>. </emphasis></para>
+
+ <figure float="0">
+ <title>Label Decorations</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On this page you can determine the format for a text output near the decoration label
+ for different Web resources. To change the value for selected element, click <emphasis>
+ <property moreinfo="none">Add Variable...</property>
+ </emphasis> button next to <emphasis>
+ <property moreinfo="none">Format</property>
+ </emphasis> field. Appeared wizard will prompt you to select one from the available
+ list.</para>
+
+ <figure float="0">
+ <title>Label Decoration for Validator</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_18.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="Seam">
+ <?dbhtml filename="Seam.html"?>
+ <title>Seam</title>
+ <para>The following preferences can be changed on the <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Seam</property>
+ </emphasis> page.</para>
+ <para>On <emphasis>
+ <property moreinfo="none">Seam</property>
+ </emphasis> screen you can add and remove Seam runtimes.</para>
+ <para>Here is what Seam preference page looks like:</para>
+ <figure float="0">
+ <title>Seam</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_19.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="SeamValidator">
+ <?dbhtml filename="SeamValidator.html"?>
+ <title>Seam Validator</title>
+ <para>The following preferences can be changed on the <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Seam > Validator</property>
+ </emphasis> page.</para>
+ <para>In <emphasis>
+ <property moreinfo="none">Validator</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed"> panel you configure seam problems that will be processed by
+ validator.</diffmk:wrapper></para>
+ <figure float="0">
+ <title>Seam Validator</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_20.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="Struts">
+ <?dbhtml filename="Struts.html"?>
+ <title>Struts</title>
+ <para>By selecting <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Struts</property>
+ </emphasis> you can configure Struts projects specific preferences.</para>
+ <figure float="0">
+ <title>Struts</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_21.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="struts_automation">
+ <?dbhtml filename="struts_automation.html"?>
+ <title>Struts Automation</title>
+ <para>On <emphasis>
+ <property moreinfo="none">Automation</property>
+ </emphasis> panel you can modify default text for the Tilel Struts plug-in element, the
+ Validator Struts plug-in element, and error message resource files.</para>
+ <figure float="0">
+ <title>Struts Automatic</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_22.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="Plug-inInsets">
+ <?dbhtml filename="Plug-inInsets.html"?>
+ <title>Plug-in Insets</title>
+ <para>By selecting <emphasis>
+ <property moreinfo="none">Web > Struts > Automation > Plug-in Insets</property>
+ </emphasis> on tab Tiles you can define a default text for tiles plugin.</para>
+ <figure float="0">
+ <title>Plug-in Insets</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_23.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The same is done but for validator plugin on the tab Validators.</para>
+ <figure float="0">
+ <title>Plug-in Insets of Validators</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_24.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="ResourceInsets">
+ <?dbhtml filename="ResourceInsets.html"?>
+ <title>Resource Insets</title>
+ <para>To see Resource Insets preference page select <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Strats > Automation > Resource Insets</property>
+ </emphasis>.</para>
+ <para>On <emphasis>
+ <property moreinfo="none">Resource Insets</property>
+ </emphasis> panel you determine default error messages for error resource files.</para>
+ <figure float="0">
+ <title>Resource Insets</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_25.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="StrutsCustomization">
+ <?dbhtml filename="StrutsCustomization"?>
+ <title>Struts Customization</title>
+ <para>The following preferences can be changed on the <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Struts > Customization</property>
+ </emphasis> page.</para>
+ <para>In the<emphasis>
+ <property moreinfo="none">Customization</property>
+ </emphasis> screen you configure Link Recognizer for Struts tags.</para>
+ <figure float="0">
+ <title>Struts Customization</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_26.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="StrutsProject">
+ <?dbhtml filename="StrutsProject.html"?>
+ <title>Struts Project</title>
+ <para>You can change the following preferences on the <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Struts > Project</property>
+ </emphasis> preference page:</para>
+ <para>On <emphasis>
+ <property moreinfo="none">Project</property>
+ </emphasis> panel you define a template for a new Struts created project: servlet
+ version, page template and so on.</para>
+ <figure float="0">
+ <title>Struts Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_27.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Selecting the Import Project tab in the Struts Project screen allows you to determine
+ the default servlet version and whether to register Web Context in server.xml.</para>
+ <figure float="0">
+ <title>Import Struts Pages</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_28.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="StrutsSupport">
+ <?dbhtml filename="StrutsSupport.html"?>
+ <title>Struts Support</title>
+ <para>The following preferences can be changed on the <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Struts > Project > Struts Support</property>
+ </emphasis> page.</para>
+ <para>Select <emphasis>
+ <property moreinfo="none">Struts Support</property>
+ </emphasis> screen if you want to configure Struts versions support settings.</para>
+ <figure float="0">
+ <title>Struts Support</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_29.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="StrutsPages">
+ <?dbhtml filename="StrutsPages.html"?>
+ <title>Struts Pages</title>
+ <para>You can change the following preferences on the JBoss Tools > Web > Struts > Struts
+ Pages preference page.</para>
+ <para>On <emphasis>
+ <property moreinfo="none">Struts Pages</property>
+ </emphasis> panel you can add or remove Struts pages.</para>
+ <figure float="0">
+ <title>Struts Pages</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_30.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="StrutsFlowDiagram">
+ <?dbhtml filename="StrutsFlowDiagram.html"?>
+ <title>Struts Flow Diagram</title>
+ <para>Similarly to the JSF Flow Diagram screen, selecting <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Editor > Struts Flow Diagram</property>
+ </emphasis> page allows you to specify aspects of the Diagram mode of the Struts
+ configuration file editor. The Struts Flow Diagram screen adds an option to hide the
+ Diagram tab and labeling settings for additional artifacts. </para>
+ <figure float="0">
+ <title>Struts Flow Diagram</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_31.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Selecting the Add Page tab in the Struts Flow Diagram screen allows you to determine
+ the default template and file extension for views (pages) you add directly into the
+ diagram using a context menu or the view-adding mode of the diagram cursor.</para>
+ <figure float="0">
+ <title>Adding Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_32.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="tiles_diagram">
+ <?dbhtml filename="titles_diagram.html"?>
+ <title>Tiles Diagram</title>
+ <para><emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Editors > Title Diagram</property>
+ </emphasis> screen allows you control some settings for the placement of Tiles
+ definitions in the Diagram mode of the JBoss Tools Tiles editor.</para>
+ <figure float="0">
+ <title>Title Diagram</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_33.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="Verification">
+ <?dbhtml filename="Verification.html"?>
+ <title>Verification</title>
+ <para>The following preferences can be changed on the <emphasis>
+ <property moreinfo="none">JBoss Tools > Web > Verification</property>
+ </emphasis> page.</para>
+ <para>On Rules Configuration tab of <emphasis>
+ <property moreinfo="none">Verifcation</property>
+ </emphasis> panel you can determine JSF and Struts rules.</para>
+ <figure float="0">
+ <title>Verification</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_34.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>On Options tab you can define a limit for the reported errors number.</para>
+ <figure float="0">
+ <title>Options of Verification</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/preferences/preferences_35.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section diffmk:change="added" id="JBossServerPreferences">
+ <?dbhtml filename="View.html"?>
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Server Preferences</diffmk:wrapper></title>
+ <para><diffmk:wrapper diffmk:change="added">Preferences for </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss Server</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> and other servers can be changed on
+ the </diffmk:wrapper><emphasis diffmk:change="added">
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Server</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> page.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Server Preferences</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_36.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">On the </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Server > Runtime Environments</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> page you can add new or modify already defined Server Runtime.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Runtime Environments</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_37.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Server Launching preferences can be configured on the </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Server > Launching</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> page.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Server Launching Preferences</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_38.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Navigate to </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Server > JBoss Server View</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> to set preferences for </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss Servers view</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">. On this page
+ you can enable or disable any of the listed view extensions, change their sequence order
+ and also edit preferences specific to each view extension. For example, </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Event Log</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> preferences:</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">JBoss Server View Preferences</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_39.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Going to </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Server > Audio</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> you can enable/disable the sound notification for different Server states
+ and actions and set the sound volume as well.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Sound Notification Adjustment</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_40.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section diffmk:change="added" id="XDoclet">
+ <?dbhtml filename="XDoclet.html"?>
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">XDoclet</diffmk:wrapper></title>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">The preferences for XDoclet can be changed if you click </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">XDoclet</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> on the left navigation bar.</diffmk:wrapper></para>
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">On the </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">XDoclet</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> screen it's possible to enable/disable XDoclet builder by checking
+ proper box, specify XDoclet home and determine XDoclet module version as well.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">XDoclet</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_41.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">Switch to </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">XDoclet > ejbdoclet</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> page in order to adjust settings for EJB-specific sub-tasks.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">ejbdoclet</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_42.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">To configure settings for various web-specific XDoclet sub-tasks, follow to </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">XDoclet > webdoclet</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> page.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">webdoclet</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/preferences/preferences_43.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">On the whole, this document should guide you to those parts of </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss
+ Tools</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> which you specifically need to develop Web Applications. It covers
+ different aspects of visual components such as editors, views, etc. for browsing,
+ representing and editing web resources you are working with.</diffmk:wrapper></para>
+
+ <para><diffmk:wrapper diffmk:change="changed">If there's anything we didn't cover or you can't figure
+ out, please feel free to visit our </diffmk:wrapper><ulink url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=258"><diffmk:wrapper diffmk:change="changed">JBoss Developer Studio Users Forum</diffmk:wrapper></ulink><diffmk:wrapper diffmk:change="added"> or </diffmk:wrapper><ulink diffmk:change="added" url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=201"><diffmk:wrapper diffmk:change="added">JBoss Tools Users Forum</diffmk:wrapper></ulink><diffmk:wrapper diffmk:change="added"> to ask questions. There we are also looking for
+ your suggestions and comments.</diffmk:wrapper></para>
+ </section>
+
+
+
+
+</chapter></chapter></book>
Modified: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/editors.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/editors.xml 2008-12-19 20:07:03 UTC (rev 12782)
+++ branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/editors.xml 2008-12-19 20:12:52 UTC (rev 12783)
@@ -35,7 +35,7 @@
within your application and make use of content and code assist no matter what project
file (jsp, xhtml, xml, css, etc...) you are working on.</para>
- <section id="OpenOnSelection4Hyperlinknavigation">
+ <section id="OpenOnSelection4Hyperlinknavigation" role="updated">
<title>OpenOn</title>
@@ -181,7 +181,7 @@
</section>
</section>
- <section id="CodeAssistAndDynamicCodeAssist42BasedOnProjectData">
+ <section id="CodeAssistAndDynamicCodeAssist42BasedOnProjectData" role="updated">
<title>Content Assist</title>
<para><property>Content assist</property> is available when working with</para>
@@ -655,7 +655,7 @@
<para>Follow these steps to set what is available for code assist:</para>
<itemizedlist>
<listitem>
- <para>Adds code assist for JSF pre-defined objects, such as value=<emphasis
+ <para>Adds code assist for JSF pre-defined objects, such as <![CDATA[value=]]><emphasis
role="italic">
<property>"#{param}"</property>
</emphasis>:</para>
@@ -787,7 +787,7 @@
</section>
</section>
- <section id="visual_page">
+ <section id="visual_page" role="updated">
<title>Visual Page Editor</title>
@@ -1004,7 +1004,7 @@
<para>The pages you are working with in <property>VPE</property> can use external
stylesheets. <property>VPE</property> allows you to create new style classes in
existing stylesheets and/or edit them as well. For these purposes <property>CSS
- Style Class Dialog</property> is provided.</para>
+ Style Class Dialog</property> is provided (hot keys - CTRL+SHIT+C).</para>
<para>Select the element for which you need to create or edit style class and press
button next to <emphasis>
<property>styleClass</property>
Modified: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/palette.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/palette.xml 2008-12-19 20:07:03 UTC (rev 12782)
+++ branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/palette.xml 2008-12-19 20:12:52 UTC (rev 12783)
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<chapter id="palette" xreflabel="palette" revisionflag="changed">
+<chapter id="palette" xreflabel="palette">
<?dbhtml filename="palette.html"?>
<chapterinfo>
<keywordset>
Modified: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/preferences.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/preferences.xml 2008-12-19 20:07:03 UTC (rev 12782)
+++ branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/preferences.xml 2008-12-19 20:12:52 UTC (rev 12783)
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<chapter id="preferences" xreflabel="preferences">
+<chapter id="preferences" xreflabel="preferences" role="updated">
<?dbhtml filename="preferences.html"?>
<title>JBoss Tools Preferences</title>
@@ -344,7 +344,7 @@
</section>
- <section id="VisualPageEditor2">
+ <section id="VisualPageEditor2" role="updated">
<?dbhtml filename="VisualPageEditor.html"?>
<title>Visual Page Editor</title>
<para><emphasis>
@@ -459,7 +459,7 @@
dialog</link> where you can adjust new settings.</para>
</section>
- <section id="el_variables">
+ <section id="el_variables" role="updated">
<?dbhtml filename="el_variables.html"?>
<title>El Variables</title>
<para>To specify necessary EL variables globally, i. e. for all projects and resources in
@@ -978,7 +978,7 @@
</section>
- <section id="JBossServerPreferences">
+ <section id="JBossServerPreferences" role="updated">
<?dbhtml filename="View.html"?>
<title>Server Preferences</title>
<para>Preferences for <property>JBoss Server</property> and other servers can be changed on
@@ -1053,7 +1053,7 @@
</figure>
</section>
- <section id="XDoclet">
+ <section id="XDoclet" role="updated">
<?dbhtml filename="XDoclet.html"?>
<title>XDoclet</title>
<para>The preferences for XDoclet can be changed if you click <emphasis>
Modified: branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/spring_tools.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/spring_tools.xml 2008-12-19 20:07:03 UTC (rev 12782)
+++ branches/jbosstools-3.0.0.CR1/jsf/docs/userguide/en/modules/spring_tools.xml 2008-12-19 20:12:52 UTC (rev 12783)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="springTools" revisionflag="added">
+<chapter id="springTools">
<?dbhtml filename="springTools.html"?>
<title>Spring Tools</title>
15 years, 4 months
JBoss Tools SVN: r12782 - branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2008-12-19 15:07:03 -0500 (Fri, 19 Dec 2008)
New Revision: 12782
Modified:
branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/introduction.xml
branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/quick_start.xml
branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_configurationpage.xml
branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_graphicalpage.xml
branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_sourcepage.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-324
the latest docs that are done for release 3.0.0.CR1 from trunk are added to branch
Modified: branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/introduction.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/introduction.xml 2008-12-19 19:58:24 UTC (rev 12781)
+++ branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/introduction.xml 2008-12-19 20:07:03 UTC (rev 12782)
@@ -52,7 +52,7 @@
</sect1>
<sect1>
<title>What is Smooks dev tools?</title>
- <para>Smooks dev tools is a sets of graphical tools for editing Smooks configuration file base on Eclipse.</para>
+ <para>Smooks dev tools is a set of graphical tools for editing Smooks configuration file base on Eclipse.</para>
<figure>
<title>Smooks form editor</title>
<mediaobject>
@@ -69,10 +69,10 @@
</link>
.
</para>
- <para> Smooks dev tools(JBossTools) run with the latest Eclipse and other required plug-ins(GEF,EMF,etc.).</para>
- <para> User should download the latest IDE for Java EE developers from this
+ <para> Smooks dev tools (JBossTools) run with the latest Eclipse and other required plug-ins (GEF, EMF, etc.).</para>
+ <para> You should download the latest IDE for Java EE developers from this
<link linkend="http://www.eclipse.org/downloads/">site
- </link>. It contains many plug-ins ( GEF,EMF,etc. ) required by Smooks dev tools.
+ </link>. It contains many plug-ins ( GEF, EMF, etc. ) required by Smooks dev tools.
</para>
</sect1>
</chapter>
Modified: branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/quick_start.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/quick_start.xml 2008-12-19 19:58:24 UTC (rev 12781)
+++ branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/quick_start.xml 2008-12-19 20:07:03 UTC (rev 12782)
@@ -16,7 +16,7 @@
data
transformation.</para>
<para>
- This chapter should give the readers a brief understanding of
+ This chapter should give you a brief understanding of
the
Smooks
dev tools.
@@ -30,19 +30,16 @@
<tip>
<title>Tip:</title>
<para>
- The example projects is base on Maven, we suggest user to
- create a
- new eclipse Java project and copy the example codes and .jar
- files
- from the
- example project paste them to the eclipse Java
+ The example project is base on Maven, you suggest you to
+ create a new eclipse Java project and copy the example code and .jar
+ files from the example project paste them into the eclipse Java
project.
</para>
</tip>
</section>
<section>
<title>Smooks configuration file wizard</title>
- <para>Select the Smooks Java-to-Java example project what you created and right-click, select the menu: "New" ->
+ <para>Select the Smooks Java-to-Java example project what you created and right-click, select the menu: "New" ->
"Other...", find the
"Smooks Configuration File" wizard. Click
"Next" button.
@@ -55,12 +52,12 @@
</imageobject>
</mediaobject>
</figure>
- <para>First wizard page is file path creation page. Select the
- "src" to be the file's container, and input
+ <para>The first wizard page is a file path creation page. Select the
+ "src" to be the files container, and input
"smooks-newconfig.smooks". Click "Next".</para>
<figure>
<title>Choose the configuration file container and type the
- file's name</title>
+ file name</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/common/input_file_name.png"
@@ -68,15 +65,13 @@
</imageobject>
</mediaobject>
</figure>
- <para>The second wizard page is the transform data type choose page.</para>
+ <para>The second wizard page is a transform data type choose page.</para>
<tip>
<title>Note</title>
<para>
- Because the quick start introduce how to create/edit the
- Java-to-Java
- Smooks configuration file, so choose "Java" type
- to be
- the source/target transform data type please.
+ As the quick start introduces how to create/edit the
+ Java-to-Java Smooks configuration file, it's necessary that "Java" type
+ is the source/target transform data type please.
</para>
</tip>
<figure>
@@ -90,10 +85,10 @@
</figure>
</section>
<section id="quickstart_formeditor">
- <title>Smooks form editor</title>
- <para>When the wizard was finished, a new Smooks configuration file was created and the Smooks editor will be opened automatically.
+ <title>Smooks form Editor</title>
+ <para>When all the wizard steps are passed, a new Smooks configuration file is created and the Smooks editor will be opened automatically.
</para>
- <para> We will see the
+ <para> You will see the
"Smooks Form Editor":
</para>
<figure>
@@ -108,15 +103,15 @@
<para> This editor contains several parts:
<orderedlist numeration="loweralpha" inheritnum="inherit">
<listitem>
- <para>Notify message display area. If there are any errors when users are editing the file,
+ <para>Notify message display area. If there are any errors when you are editing the file,
the error area will display them.</para>
</listitem>
<listitem>
- <para>Source data tree. The tree will display the structured of transform source data.</para>
+ <para>Source data tree. The tree will display the structure of transformed source data.</para>
</listitem>
<listitem>
- <para>Target data tree. The tree will display the structured of transform target data.</para>
+ <para>Target data tree. The tree will display the structure of transformed target data.</para>
</listitem>
<listitem>
@@ -125,25 +120,24 @@
<listitem>
<para>Source/Target data selection links. Click the link,
- there will open the
- <link linkend="graphicaleditor_datalink">"Data
+ and <link linkend="graphicaleditor_datalink">"Data
Selection
- Wizard"</link>
- to help user to choose the source/target
+ Wizard"</link> will be opened
+ helping you to choose the source/target
data.</para>
</listitem>
</orderedlist>
</para>
</section>
<section id="graphicaleditor_datalink">
- <title>Choose the source/target data
+ <title>Choosing the source/target data
</title>
<para>Click the data selection links to choose the transform data. The "Data Selection Wizard" is opened, and there are two data types on the list: XML and Java.
</para>
<tip>
<title>Note</title>
<para>
- There will be more and more data types on the list as the
+ There will be more and more data types on a list as the
development went on.
</para>
</tip>
@@ -159,7 +153,7 @@
<para>Select the "JavaBean Data Type" and click "Next", you will see a java class selection page:
</para>
<figure>
- <title>JavaBean data selection wizard</title>
+ <title>JavaBean Data Selection Wizard</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/java2java/java_data_selection_wizard.png"
@@ -167,11 +161,10 @@
</imageobject>
</mediaobject>
</figure>
- <para>When you finished the java class selection, click "Finish"
- , we will see, the structured of the java class was be displayed on the Source data tree. Please do the same operation with the target data link.
+ <para>When you select all the necessary java classes, click "Finish" and the structure of the java class will be displayed on the Source data tree. Please, do the same with a target data link.
</para>
<figure>
- <title>Display structure of the transform data</title>
+ <title>Displaying Structure of the Transformed Data</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/java2java/java_data_display.png"
@@ -182,9 +175,9 @@
</section>
<section id="quickstart_mapping">
<title>Mapping</title>
- <para> As you see, the source/target data tree display the structure of the java class. </para>
- <para>How to mapping it?</para>
- <para> First, we should know what is we want to transform:
+ <para> As you see, the source/target data tree displays the structure of the java class. </para>
+ <para>How to map it?</para>
+ <para> First, you should know what to transform:
<orderedlist numeration="loweralpha" inheritnum="inherit">
<listitem><para>Bind the "customerName" property of the
Order#header to
@@ -219,12 +212,12 @@
</para>
<para> Make sense?</para>
<para> OK, let's select the "customerName" item of the
- "header" item on the source data tree and start to drag it. When the drag item cross into the Mapping graphical area, we will see a connection line. Drop the item onto the "customerName" of the
+ "header" item on the source data tree and start to drag it. When the drag item crosses the Mapping graphical area, you will see a connection line. Drop the item onto the "customerName" of the
"LineOrder" on the target data view.</para>
- <para> Now there will open a dialog to ask you to connect the root node:
+ <para> Now a dialog is oped asking you to connect the root node:
</para>
<figure>
- <title>A dialog to ask user to connect the root nodes</title>
+ <title>Dialog Asking You to Connect to the Root Nodes</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/java2java/connect_rootnode.png"
@@ -232,24 +225,23 @@
</imageobject>
</mediaobject>
</figure>
- <para> Please click "Yes" to connect the root node, if you didn't do that, this dialog will open again when you connect other nodes.
+ <para> Please, click "Yes" to connect the root node, if you didn't do that, this dialog will be opened again when you connect other nodes.
</para>
<tip>
<title>Note</title>
- <para>Please
+ <para>Please,
remember that:
The root nodes of the source data
and target data
*MUST*
be connected.</para>
- <para>This rule is not only for Java-to-Java, same with
- XML-to-Java too </para>
+ <para>This rule is not only for Java-to-Java, but the same is also relevant for XML-to-Java </para>
</tip>
- <para> Now let's do the same operation with the "customerNumber", that is the what we want to see:
+ <para> Now let's do the same operation with the "customerNumber", that is what you want to see:
</para>
<figure>
- <title>Correctly mapping editor</title>
+ <title>Correctly Mapping Editor</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/java2java/java_connection1.png"
@@ -257,7 +249,7 @@
</imageobject>
</mediaobject>
</figure>
- <para>Next, we are going to try to bind the properties of the
+ <para>Next, you are going to bind the properties of the
"OrderItem" to the properties of the "LineItem".
</para>
<para>Select the "price" and drag it onto the "unitPrice" of the other side tree viewer. The error message display area will show an error:
@@ -272,13 +264,13 @@
</mediaobject>
</figure>
<para>How to deal with the error ?</para>
- <para>Please click the "Fix it" link, there pop a menu and there are several "resolve methods" on the menu.
+ <para>Please click the "Fix it" link, a menu is popped-up with several "resolve methods" on it.
</para>
<para> Select the first resolve method: 'Connect the "OrderItem" to the
- "LineItem" ', then the "OrderItem" was connected with the
+ "LineItem" ', then the "OrderItem" is connected with the
"LineItem".
</para>
- <para>But the notify message area still show some other errors:
+ <para>But the notify message area still shows some other errors:
</para>
<figure>
<title>Connection Error 2</title>
@@ -289,28 +281,22 @@
</imageobject>
</mediaobject>
</figure>
- <para>OK,Deal it with the fire error ---- Click "Fix it" link and select the first resolve method. The "orderItems" was connected with the "lineItems".
+ <para>OK, let's deal with the fire error ---- Click "Fix it" link and select the first resolve method. The "orderItems" is connected with the "lineItems".
</para>
<tip>
<title>Tip</title>
<para>
- Why there will occur error?</para>
- <para> We will find that, if we only
- connect the
- property node without
- to connect the parent node of the
- property,
- the "connection error"
- will happen. </para>
+ Why does the occur error?</para>
+ <para> You will find that, if you only connect the property node without connecting the parent node of the property, the "connection error" occur</para>
<para>The
connection of
the "price-to-unitPrice" is
the "Binding
Connection",
- but there need
+ but it needs
a "Instance
Creation
- Connection" ---- the
+ Connection" -the
connection
of
the
@@ -327,8 +313,8 @@
</imageobject>
</mediaobject>
</figure>
- <para>Now, we should save the file.The Smooks tools will generate the correct configuration file contents.</para>
- <para>OK, Let run the test class: example.Main (Please make sure that the Smooks engine load the correct configuration file)
+ <para>Now, you should save the file and the Smooks tools will generate the correct configuration file content.</para>
+ <para>OK, Let run the test class: example.Main (Please, make sure that the Smooks engine loads the correct configuration file)
</para>
<para>Success!
</para>
Modified: branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_configurationpage.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_configurationpage.xml 2008-12-19 19:58:24 UTC (rev 12781)
+++ branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_configurationpage.xml 2008-12-19 20:07:03 UTC (rev 12782)
@@ -41,7 +41,7 @@
<section id="configurationpage_parsetype">
<title>Smooks parse type</title>
<para>Open the "Other configuration" section, we will see there
- is a sets of radio buttons:</para>
+ is a set of radio buttons:</para>
<figure>
<title>Smooks parse type</title>
<mediaobject>
@@ -71,14 +71,14 @@
</figure>
<para>
There are three buttons on the right side of the "File Import"
- list. User can click those to add/edit/remove the import files.
+ list. You can click those to add/edit/remove the import files.
</para>
<tip>
<title>Tip</title>
<para>
If the import file dosen't exist, the image of the import file
will change to "Error Image".
- If user double-click the import file in
+ If you double-click the import file in
the "Import File" list, the file will be open with a new default
editor.
</para>
@@ -125,7 +125,7 @@
</orderedlist>
</para>
<para>
- User can modify the parameters of the "Date Decoder" item with the
+ You can modify the parameters of the "Date Decoder" item with the
left detail page.
</para>
<figure>
@@ -138,7 +138,7 @@
</mediaobject>
</figure>
<para>
- When user defined new "Date Decoder", they can use the
+ When you defined new "Date Decoder", they can use the
<link linkend="graphicalpage_propertiesview"> "JavaBean Properties"</link> GUI to set the them to be the "Java type".
</para>
<!--
Modified: branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_graphicalpage.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_graphicalpage.xml 2008-12-19 19:58:24 UTC (rev 12781)
+++ branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_graphicalpage.xml 2008-12-19 20:07:03 UTC (rev 12782)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter id="smooksformeditor_graphicaltab" xreflabel="Smooks Graphical Editor Page">
- <?dbhtml filename="smooks_form_editor_graphicaltab.html"?>
+ <?dbhtml filename="smooks_form_editor_graphicaltab.html"?>
<chapterinfo>
<keywordset>
<keyword>JBoss Tools</keyword>
@@ -9,7 +9,7 @@
</keywordset>
</chapterinfo>
<title>Smooks Graphical Editor Page</title>
- <para>
+ <para>
Smooks Graphical Editor Page is one tab of the Smooks Form
Editor.
</para>
@@ -23,24 +23,24 @@
</mediaobject>
</figure>
<para>
- This graphical editor could allow user to do drug/drop operations
- with the nodes of transform data to mapping the source data to target
+ This graphical editor could allow you to perform drug/drop operations
+ with the nodes of transform data to map the source data to target
data.
</para>
<para>
- When user save the graphical editor the correct Smooks
- configuration file contents
+ When you save the changes in the graphical editor the correct Smooks
+ configuration file content
will be generated.
</para>
<section>
- <title>Introduce the areas of graphical editor</title>
- <para> Please read the
+ <title>Introducing the areas of graphical editor</title>
+ <para>Information on the topic could be found here
<link linkend="quickstart_formeditor">"Quick Start/Smooks Form Editor"</link>
</para>
</section>
<section>
<title>Load source/target data</title>
- <para> Click the links under the data viewer, the data type selection wizard page will be shown.
+ <para> Click the links under the data viewer, the data type selection wizard page will be shown.
</para>
<figure>
<title>Data type selection wizard page</title>
@@ -51,7 +51,7 @@
</imageobject>
</mediaobject>
</figure>
- <para> There are a sets of transform data type on the wizard page,select one type and click
+ <para> There are sets of transform data type on the wizard page, select one type and click
<property>Next</property>
, the data source selection wizard page will be shown.
<tip>
@@ -79,61 +79,60 @@
</imageobject>
</mediaobject>
</figure>
- <para> When finish the data selection(file path selection), Click
+ <para> When you finish the data selection (file path selection), Click
<property>Finish</property>
, the data viewer will display the selected data structure.
</para>
</section>
<section>
- <title>User the graphical editor to mapping</title>
- <para> Please read the
+ <title>Using the graphical editor for mapping</title>
+ <para>To get information on the topic please, read the
<link linkend="quickstart_mapping">"Quick Start/Mapping"</link>
</para>
</section>
<section>
<title>Error messages</title>
- <para> When user do any mapping operations, the Smooks tools will validate the file contents with "Mapping Logic", If there is any errors of the configuration file contents
- ,error messages will be shown on the
+ <para>When you do any mapping operations, the Smooks tools validates the file content with "Mapping Logic", If there is any errors of the configuration file content
+ , error messages are shown on the
<link linkend="quickstart_formeditor">"Error
message area"</link>
.
</para>
- <para> Please read the
+ <para> Please, read the
<link linkend="quickstart_mapping">"Quick Start/Mapping"</link> to find how to fix the errors.
</para>
</section>
<section id="graphicalpage_propertiesview">
<title>Properties Viewer</title>
- <para> User can edit the properties of the "connection lines" with the properties viewer.
+ <para> You can edit the properties of the "connection lines" with the properties viewer.
</para>
- <para> Select the menu: "Window -> Show View -> Other -> Properties", the properties viewer will be opened.
+ <para> Select the menu: "Window -> Show View -> Other -> Properties", the properties viewer is opened.
</para>
<para>
- When user select on the connection lines, the properties viewer
- will show a sets of section GUI for editing the properties of the
+ When you select on the connection lines, the properties viewer
+ will show a set of section GUI for editing the properties of the
connection line.
</para>
<tip>
- <title>Note</title>
+ <title>Tip</title>
<para>
- These GUI on the properties viewer will be displayed when the
+ This GUI on the properties viewer is displayed when the
"Smooks
- Graphical Page" was active,if not the properties viewer will
- display empty GUI.
+ Graphical Page" is active, if not, the properties viewer
+ displays empty GUI.
</para>
<para>
- If the source data type of the selected connection line was
- "XML",The properties viewer will show a "XML Properties" section
+ If the source data type of the selected connection line is
+ "XML", The properties viewer shows a "XML Properties" section
GUI.
</para>
<para>
- But the source data type of the selected connection line was
- "Java",
- the "XML Properties" section GUI doesn't display.
+ But if the source data type of the selected connection line is
+ "Java", the "XML Properties" section GUI isn't 'displayed.
</para>
<para>
It means that if the source/target data type of the selected
- connection line was different, the properties viewer will show
+ connection line is different, the properties viewer shows
different GUI.
</para>
</tip>
Modified: branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_sourcepage.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_sourcepage.xml 2008-12-19 19:58:24 UTC (rev 12781)
+++ branches/jbosstools-3.0.0.CR1/smooks/docs/reference/en/modules/smooksformeditor_sourcepage.xml 2008-12-19 20:07:03 UTC (rev 12782)
@@ -11,7 +11,7 @@
<title>Smooks Source Editor Page</title>
<section>
<title>XML Source Editor</title>
- <para> User can use this editor to edit the Smooks configuration file directly.
+ <para>You can use this editor to edit the Smooks configuration file directly.
</para>
<figure>
<title>Graphical Editor</title>
@@ -25,7 +25,7 @@
</section>
<section>
<title>Error Messages GUI</title>
- <para> If the Smooks tools can't understand the configuration file or the configuration file was illegal(XML structure isn't right for Smooks configuration file, etc.),The error message panel will display above the XML editor.
+ <para>If the Smooks tools can't understand the configuration file or the configuration file is illegal (XML structure isn't right for Smooks configuration file, etc.), The error message panel will be displayed above the XML editor.
</para>
<figure>
<title>Graphical Editor</title>
@@ -36,16 +36,16 @@
</imageobject>
</mediaobject>
</figure>
- <tip>
- <title>Note</title>
+ <note>
+ <title>Tip</title>
<para>
- When the error message panel was displayed, other editors (
- Graphical Editor, Configuration Editor ) will be disabled.
+ When the error message panel is displayed, other editors (
+ Graphical Editor, Configuration Editor ) are disabled.
</para>
<para>
- User can't edit the configuration file with other editors until
- file was right.
+ You can't edit the configuration file with other editors until
+ file becomes valid.
</para>
- </tip>
+ </note>
</section>
</chapter>
\ No newline at end of file
15 years, 4 months
JBoss Tools SVN: r12781 - in branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en: modules and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: smukhina
Date: 2008-12-19 14:58:24 -0500 (Fri, 19 Dec 2008)
New Revision: 12781
Added:
branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master_output.xml
Modified:
branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master.xml
branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/first_seam.xml
branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/getting_started.xml
branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/manage.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-324
the latest docs that are done for release 3.0.0.CR1 from trunk are added to branch
master_output - the file to build guide versions with highlighted diff markers
Modified: branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master.xml 2008-12-19 19:55:55 UTC (rev 12780)
+++ branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master.xml 2008-12-19 19:58:24 UTC (rev 12781)
@@ -35,7 +35,7 @@
<year>2008</year>
<holder>JBoss, a division of Red Hat Inc.</holder>
</copyright>
- <releaseinfo>Version: 2.0.0.Beta1</releaseinfo>
+ <releaseinfo>Version: 2.0.0.CR1</releaseinfo>
<abstract>
<title/>
<para>
Added: branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master_output.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master_output.xml (rev 0)
+++ branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/master_output.xml 2008-12-19 19:58:24 UTC (rev 12781)
@@ -0,0 +1,3830 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.docbook.org/xml/4.3/docbookx.dtd"
+[
+<!ENTITY getting_started SYSTEM "modules/getting_started.xml">
+<!ENTITY manage SYSTEM "modules/manage.xml">
+<!ENTITY first_seam SYSTEM "modules/first_seam.xml">
+<!ENTITY jsp_application SYSTEM "modules/jsp_application.xml">
+<!ENTITY rad_jsf_application SYSTEM "modules/rad_jsf_application.xml">
+<!ENTITY gsg_faq SYSTEM "modules/gsg_faq.xml">
+<!ENTITY further_reading SYSTEM "modules/further_reading.xml">
+
+<!ENTITY seamlink "../../seam/html_single/index.html">
+<!ENTITY aslink "../../as/html_single/index.html">
+<!ENTITY esblink "../../esb_ref_guide/html_single/index.html">
+<!ENTITY gsglink "../../GettingStartedGuide/html_single/index.html">
+<!ENTITY hibernatelink "../../hibernatetools/html_single/index.html">
+<!ENTITY jbpmlink "../../jbpm/html_single/index.html">
+<!ENTITY jsflink "../../jsf/html_single/index.html">
+<!ENTITY jsfreflink "../../jsf_tools_ref_guide/html_single/index.html">
+<!ENTITY jsftutoriallink "../../jsf_tools_tutorial/html_single/index.html">
+<!ENTITY strutsreflink "../../struts_tools_ref_guide/html_single/index.html">
+<!ENTITY strutstutoriallink "../../struts_tools_tutorial/html_single/index.html">
+<!ENTITY jbossportallink "../../jboss_portal_tools_ref_guide/html_single/index.html">
+<!ENTITY migrationlink "../../Exadel-migration/html_single/index.html">
+<!ENTITY wslink "../../ws_ref_guide/html_single/index.html">
+]><book xmlns:diffmk="http://diffmk.sf.net/ns/diff">
+ <bookinfo>
+ <title>Getting Started with JBoss Developer Studio</title>
+ <pubdate>April 2008</pubdate>
+ <copyright>
+ <year>2007</year>
+ <year>2008</year>
+ <holder>JBoss, a division of Red Hat Inc.</holder>
+ </copyright>
+ <releaseinfo><diffmk:wrapper diffmk:change="changed">Version: 2.0.0.CR1</diffmk:wrapper></releaseinfo>
+ <abstract>
+ <title></title>
+ <para>
+ <ulink url="http://download.jboss.org/jbosstools/nightly-docs/en/GettingStartedGuide/...">PDF version</ulink>
+ </para>
+</abstract>
+
+
+</bookinfo>
+ <toc></toc>
+
+
+
+
+<chapter id="getting_started" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/documentation/guides/GettingStartedGuide/en/modules/getting_started.xml" xreflabel="getting_started">
+ <?dbhtml filename="getting_started.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Java</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Getting Started with JBoss Developer Studio</title>
+
+ <section id="intro1">
+ <title>What is JBDS?</title>
+ <para><property moreinfo="none">JBoss Developer Studio</property> is a set of eclipse-based development tools that
+ are pre-configured for JBoss Enterprise Middleware Platforms and Red Hat Enterprise Linux.
+ Developers are not required to use <property moreinfo="none">JBoss Developer Studio</property> to develop on
+ JBoss Enterprise Middleware and/or Red Hat Linux. But, many find these pre-configured tools offer
+ significant time-savings and value, making them more productive and speeding time to deployment.</para>
+ <para>This guide covers the first steps to get started working with <property moreinfo="none">JBoss Developer
+ Studio</property>. You will learn how to install and configure necessary software for your OS
+ (currently Linux, Microsoft Windows or Mac OSX).</para>
+ <para>Thus this guide will provide you with detailed info on how to start JDK, JBDS and JBoss
+ Tools.</para>
+ </section>
+
+ <section id="ConfigJavaEnvironment">
+ <?dbhtml filename="ConfigJavaEnvironment.html"?>
+ <title>Configuring Your Java Environment</title>
+ <para>You must have a working installation of JDK 5 before you install <property moreinfo="none">JBoss Developer
+ Studio</property>. Currently it will only fully work with a 32-bit JVM, not a 64-bit JVM. On a
+ 64-bit JVM the visual editor fails to launch because of feature of OS architecture. Thus in this
+ guide we will show you how to install a 32-bit Sun JDK 5.0 on a Linux Platform and Microsoft
+ Windows Platform.</para>
+
+ <section id="InstallJDK50onLinux">
+ <title>Installing and Configuring 32-bit Sun JDK 5.0 on Linux</title>
+ <para>To install 32-bit Sun JDK 5.0 on Linux and configure it, you should follow the next steps:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Download the <ulink url="http://java.sun.com/javase/downloads/index_jdk5.jsp">Sun JDK 5.0
+ (Java 2 Development Kit)</ulink> from Sun's website. Choose "JDK 5.0 Update
+ <x>" (where "x" is the latest update number) for
+ download and then select "Red Hat Package Manager in self-extracting" file
+ for Linux. Read the instructions on Sun's website for installing the JDK.</para>
+ </listitem>
+ <listitem>
+ <para>If you don't want to use SysV service scripts you can install the
+ "self-extracting file" for Linux instead of choosing the "RPM in
+ self-extracting" file. In that case you can skip the next step mentioned here. But it
+ is recommended to use the SysV service scripts for production servers.</para>
+ </listitem>
+ <listitem>
+ <para>Download and install the appropriate -compat RPM from JPackage <ulink url="ftp://jpackage.hmdc.harvard.edu/JPackage/1.7/generic/RPMS.non-free/">here</ulink>.
+ Please ensure you choose a matching version of the -compat package to the JDK you've
+ installed.</para>
+ </listitem>
+ <listitem>
+ <para>Create an environment variable that points to the JDK installation directory and call it
+ JAVA_HOME. Add <emphasis>
+ <property moreinfo="none">$JAVA_HOME/bin</property>
+ </emphasis> to the system path to be able to run java from the command line. You can do this
+ by adding the following lines to the .bashrc file in your home directory.</para>
+ <programlisting format="linespecific"><![CDATA[#In this example /usr/java/jdk1.5.0_11 is the JDK installation directory.
+export JAVA_HOME=/usr/java/jdk1.5.0_11
+export PATH=$PATH:$JAVA_HOME/bin]]></programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <title>Note:</title>
+
+ <para>If you have JDK already installed and added in your system path, you should add
+ <emphasis>$JAVA_HOME/bin</emphasis> before the old <emphasis>$PATH</emphasis><diffmk:wrapper diffmk:change="added"> (not after it)
+ so that the new version of JDK can be found first, i. e. </diffmk:wrapper><emphasis diffmk:change="added">
+ <emphasis>export PATH=$JAVA_HOME/bin:$PATH</emphasis>
+ </emphasis><diffmk:wrapper diffmk:change="added"> This way, the machine will pick up the new JVM first. You only need to run
+ "alternative" as a safe guard for the right JVM. </diffmk:wrapper></para>
+ </note>
+
+ <para>Set this variable for your account doing the installation and also for the user account
+ that will run the server.</para>
+ <itemizedlist>
+ <listitem>
+ <para>If you have more than one version of JVM installed on your machine, make sure you are
+ using the JDK 1.5 installation as the default java and javac. You can do this using the
+ alternatives system. The alternatives system allows different versions of Java from different
+ sources to co-exist on your system.</para>
+ </listitem>
+ </itemizedlist>
+ <section id="SelectAlternativesforJava">
+ <title>Select alternatives for java, javac and java_sdk_1.5.0</title>
+ <itemizedlist>
+ <listitem>
+ <para>As a root user, type the following command at the shell prompt and you should see
+ something like this:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific"><![CDATA[[root@vsr ~]$ /usr/sbin/alternatives --config java
+There are 2 programs that provide 'java'.
+Selection Command
+-----------------------------------------------
+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java
+*+ 2 /usr/lib/jvm/jre-1.5.0-sun/bin/java
+Enter to keep the current selection[+], or type selection number:]]></programlisting>
+ <para>Make sure the Sun version [jre-1.5.0-sun in this case] is selected (marked with a
+ '+' in the output), or select it by entering its number as prompted.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Repeat the same for javac and java_sdk_1.5.0.</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific"><![CDATA[[root@vsr ~]$ /usr/sbin/alternatives --config javac
+There is 1 program that provides 'javac'.
+ Selection Command
+-----------------------------------------------
+*+ 1 /usr/lib/jvm/java-1.5.0-sun/bin/javac
+Enter to keep the current selection[+], or type selection number:
+
+[root@vsr ~]$ /usr/sbin/alternatives --config java_sdk_1.5.0
+There is 1 program that provide 'java_sdk_1.5.0'.
+ Selection Command
+-----------------------------------------------
+*+ 1 /usr/lib/jvm/java-1.5.0-sun
+Enter to keep the current selection[+], or type selection number:]]></programlisting>
+ <para>You should verify that java, javac and java_sdk_1.5.0 all point to the same manufacturer
+ and version.</para>
+ <note>
+ <title>Note:</title>
+ <para>You can always override this step by setting the JAVA_HOME environment variable as
+ explained in the previous step.</para>
+ </note>
+ <itemizedlist>
+ <listitem>
+ <para>Make sure that the java executable is in your path and that you are using an appropriate
+ version. To verify your Java environment, type "java -version" at the shell
+ prompt and you should see something like this:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific"><![CDATA[[root@vsr ~]$ java -version
+java version "1.5.0_11"
+Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
+Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)]]></programlisting>
+ </section>
+
+ </section>
+ <section id="InstallJDK50onWindows">
+ <title>Installing and Configuring 32-bit Sun JDK 5.0 on Microsoft Windows</title>
+
+ <para>To install and configure 32-bit Sun JDK 5.0 on Microsoft Windows, follow these steps:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Download the <ulink url="http://java.sun.com/javase/downloads/index_jdk5.jsp">Sun JDK 5.0
+ (Java 2 Development Kit)</ulink> from Sun's website. Choose "JDK 5.0 Update
+ <x>" (where "x" is the latest update number) for
+ download and then select your Windows Platform options to perform the installation.</para>
+ </listitem>
+ <listitem>
+ <para>Create an environment variable called JAVA_HOME that points to the JDK installation
+ directory, for example:
+ <literallayout class="normal" format="linespecific">
+ <emphasis>C:\Program Files\Java\jdk1.5.0_11\</emphasis>
+ </literallayout></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In order to run java from the command line, add the <emphasis>jre\bin</emphasis> directory
+ to your path, for example:</para>
+ <para>
+ <emphasis>C:\Program Files\Java\jdk1.5.0_11\jre\bin</emphasis>
+ </para>
+ <para>To do this, open the <emphasis>
+ <property moreinfo="none">Control Panel</property>
+ </emphasis> from the <emphasis>
+ <property moreinfo="none">Start</property>
+ </emphasis> menu, switch to Classic View if necessary, open the System Control Panel applet (<emphasis>
+ <property moreinfo="none">System</property>
+ </emphasis>), select the <emphasis>
+ <property moreinfo="none">Advanced</property>
+ </emphasis> Tab, and click on the <emphasis>
+ <property moreinfo="none">Environment Variables</property>
+ </emphasis> button.</para>
+ <para>Now, when 32-bit Sun JDK 5.0 has been successfully installed, we can pass on to the next
+ step.</para>
+ </section>
+
+ </section>
+
+ <section id="InstallingJBDS">
+ <?dbhtml filename="InstallingRHDS.html"?>
+ <title>JBoss Developer Studio Installation</title>
+
+ <para>This chapter will provide you with detailed information on how to install <property moreinfo="none">JBoss
+ Developer Studio</property>.</para>
+
+ <para>JBDS comes with a simple installer, bundled with tested/pre-configured versions of Eclipse,
+ WTP, JBossEAP, Seam, and SpringIDE. Thus, to start perform the next steps:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><diffmk:wrapper diffmk:change="changed">First of all you need the appropriate installation file for your platform from
+ </diffmk:wrapper><ulink url="https://www.redhat.com/apps/store/developers/jboss_developer_studio.html">Red Hat
+ website</ulink>.</para>
+ </listitem>
+ <listitem>
+ <para>Then run in console:</para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[java -jar jbdevstudio-linux-gtk-1.1.0.GA.jar
+]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>Follow the instructions presented by the installation wizard</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>JBoss Developer Studio Installation Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Provide the installation path</para>
+ </listitem>
+ <listitem>
+ <para>Select Java VM</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Select Java VM</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <tip>
+ <title>Tip:</title>
+ <para>By selecting <emphasis>
+ <property moreinfo="none">Default Java VM</property>
+ </emphasis> you set default Java VM of your system (to verify your Java environment, type
+ "java -version" in console).</para>
+ </tip>
+
+ <para>Selecting <emphasis>
+ <property moreinfo="none">Specific Java VM</property>
+ </emphasis> you can provide the path to non-default Java VM.</para>
+
+ <note>
+ <title>Note:</title>
+ <para>JBoss Developer Studio needs Java 5 and "gij" isn't available on
+ every platform.</para>
+ </note>
+
+ <itemizedlist>
+ <listitem>
+ <para>Installation process includes <ulink url="http://www.jboss.com/products/platforms/application">JBoss Enterprise Application
+ Platform</ulink>. Select <emphasis>
+ <property moreinfo="none">Yes</property>
+ </emphasis> to use it in JBoss Developer Studio.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para></para>
+
+ <figure float="0">
+ <title>JBoss Enterprise Application Platform Installing</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para></para>
+ <note>
+ <title>Note:</title>
+ <para>The installer installs JBoss Enterprise Application Platform for running your applications
+ if you select this option during the installation process. If you want to use a different server
+ than ours, you can change the setting in JBoss Developer Studio.</para>
+ </note>
+
+ <itemizedlist>
+ <listitem>
+ <para>Check your installation paths and see the components to install. If you'd like to change
+ something, press <emphasis>
+ <property moreinfo="none">Previous</property>
+ </emphasis> button. Click <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> to start installation. </para>
+ </listitem>
+ </itemizedlist>
+
+ <para></para>
+
+ <figure float="0">
+ <title>Summary Information</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="jbds_jbosstools">
+
+ <title>JBoss Developer Studio and JBoss Tools</title>
+
+ <para>This section uncovers the points on the differences between <property moreinfo="none">JBoss Developer
+ Studio</property> and <property moreinfo="none">JBoss Tools</property> and provides the steps on <property moreinfo="none">JBoss
+ Tools</property> installation as well.</para>
+
+ <section id="WhatDifferenceBetweenJBDSAndJBossTools">
+ <title>What is the difference?</title>
+
+ <para><property moreinfo="none">JBoss Tools</property> is what went into our <property moreinfo="none">JBoss Developer
+ Studio</property> which comes as an easy-to-install Eclipse based IDE fully configured and ready
+ to run with the bundled <property moreinfo="none">JBoss Enterprise Application Platform</property>.</para>
+
+ <para>In short <property moreinfo="none">JBoss Tools</property> are just a set of Eclipse plugins and
+ <property moreinfo="none">JBoss Developer Studio</property> adds:</para>
+ <itemizedlist>
+ <listitem>
+ <para>An installer</para>
+ </listitem>
+ <listitem>
+ <para>Eclipse and Web Tools preconfigured</para>
+ </listitem>
+ <listitem>
+ <para>JBoss EAP with JBoss AS and Seam preconfigured</para>
+ </listitem>
+ <listitem>
+ <para>3rd party plugins bundled and configured</para>
+ </listitem>
+ <listitem>
+ <para>Access to RHEL and Red Hat Network</para>
+ </listitem>
+ <listitem>
+ <para>Access to the JBoss/Red Hat supported software</para>
+ </listitem>
+ </itemizedlist>
+ <para> For additional information see <ulink url="http://www.jboss.com/products/devstudio">JBoss.com</ulink></para>
+ </section>
+
+ <section id="JBossToolsInstall">
+ <title>JBoss Tools Installation</title>
+ <para>Here, let's consider the installation of the <property moreinfo="none">JBoss Tools</property>
+ modules.</para>
+ <para><property moreinfo="none">JBoss Tools</property> is an umbrella project for the JBoss developed plugins
+ that will make it into <property moreinfo="none">JBoss Developer Studio</property>. The JBoss Tools modules are:</para>
+ <itemizedlist>
+ <listitem>
+ <para>JBoss AS Tools</para>
+ </listitem>
+ <listitem>
+ <para>Seam Tools</para>
+ </listitem>
+ <listitem>
+ <para>Hibernate Tools</para>
+ </listitem>
+ <listitem>
+ <para>Visual Page Editor</para>
+ </listitem>
+ <listitem>
+ <para>JST Tools</para>
+ </listitem>
+ <listitem>
+ <para>JBPM Tools</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>To install the JBoss Tools plugins for Eclipse, you need the following:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Get Eclipse and Web Tools</para>
+ </listitem>
+ </itemizedlist>
+ <para><diffmk:wrapper diffmk:change="changed">The currant version of JBoss Tools (3.0.0.CR1) targets at Eclipse 3.4/Ganymede and WTP
+ 3.0.</diffmk:wrapper></para>
+
+ <tip>
+ <title>Tip:</title>
+ <para>We recommend you do not use Eclipse.org update site to go from Eclipse 3.3 to Eclipse 3.4.
+ Instead we suggest that you download the full binary from <ulink url="http://www.eclipse.org/downloads/">here</ulink>.</para>
+ </tip>
+
+ <para>If you can only use Eclipse 3.3 use <ulink url="http://www.jboss.org/tools/download/index.html#stable">JBoss Tools 2.1.2</ulink>, but
+ JBoss Tools 2.x will not have any of the new features.</para>
+
+ <note>
+ <title>Note:</title>
+ <para>Remember to choose the download that matches your OS and use Java 5 when you run
+ it.</para>
+ </note>
+
+ <itemizedlist>
+ <listitem>
+ <para>Get the <ulink url="http://download.jboss.org/jbosstools/builds/nightly/latestBuild.html">latest JBoss Tools build</ulink></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Some of our newer plugins, like TPTP and BIRT, need additional drivers. On the left side of
+ the download page you can find all of the required drivers for chosen build and their versions.</para>
+ <para>Instead of downloading the nightly build version manually, it's also possible to
+ get the latest release of <property moreinfo="none">JBoss Tools</property> from one of our update sites: <itemizedlist>
+ <listitem>
+ <para>Stable Updates: <ulink url="http://download.jboss.org/jbosstools/updates/stable">http://download.jboss.org/jbosstools/updates/stable</ulink></para>
+ </listitem>
+ <listitem>
+ <para> Development Updates: <ulink url="http://download.jboss.org/jbosstools/updates/development">http://download.jboss.org/jbosstools/updates/development</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Finally, install the build</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Unzip the file(s) directly into your Eclipse <emphasis>
+ <property moreinfo="none">plugins/features</property>
+ </emphasis> directory and it will be readily available. It might be necessary to start Eclipse
+ with eclipse -clean to make sure it starts clean and rereads the new list of plugins.</para>
+
+ <para>If you need to install any standalone plug-in from JBoss Tools visit a <ulink url="http://labs.jboss.com/wiki/InstallingJBossTools">JBoss Tools Wiki</ulink> page to read
+ about dependencies between standalone plug-ins.</para>
+ </section>
+
+ </section>
+
+ <section id="Welcome">
+ <title>Welcome to JBoss Developer Studio</title>
+ <para>In this section we'll show you how to work with the welcome page of the <property moreinfo="none">JBoss
+ Developer Studio</property>.</para>
+ <para>The welcome page is the first page you see when you first launch <property moreinfo="none">JBoss Developer
+ Studio</property>. </para>
+
+ <figure float="0">
+ <title>Welcome to JBoss Developer Studio</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>With the help of its page you will be able:</para>
+ <itemizedlist>
+ <listitem>
+ <para>to get quick access to Getting Started Documentation (guides, tutorials and
+ viewlets)</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Getting Started Documentation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>to create new Seam projects, jBPM Process, JSF or Struts projects using JBDS
+ wizards</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Create New...</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>to get short description of perspectives that JBDS offers for more productive
+ development</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Perspectives</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>to visit JBoss Developer Studio web resources.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Web Resources</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/getting_started/getting_started_9.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Start work with <property moreinfo="none">JBoss Developer Studio</property> by clicking on <emphasis>
+ <property moreinfo="none">Workbench</property>
+ </emphasis> button or simply close the Welcome page.</para>
+
+ </section>
+
+ <section id="Upgrading">
+ <?dbhtml filename="Upgrading.html"?>
+ <title>Upgrading</title>
+ <para>To upgrade, just uninstall your current version and install the new one.</para>
+ </section>
+
+ <section id="Uninstalling">
+ <?dbhtml filename="Uninstalling.html"?>
+ <title>Uninstalling</title>
+ <itemizedlist>
+ <listitem>
+ <para>Make sure <property moreinfo="none">JBoss Developer Studio</property> is not running</para>
+ </listitem>
+ <listitem>
+ <para>Uninstall your current version of <property moreinfo="none">JBoss Developer Studio</property> by running
+ Uninstaller</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="Support">
+ <?dbhtml filename="Support.html"?>
+ <title>Support</title>
+ <para>If you have comments or questions, you can discuss them at our <ulink url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=258">JBoss
+ Developer Studio Forum</ulink>.</para>
+ <para>When writing to the forum for questions, please include the following information:</para>
+ <orderedlist continuation="restarts" inheritnum="ignore">
+ <listitem>
+ <para>JBoss Developer Studio version</para>
+ </listitem>
+ <listitem>
+ <para>Exact error message</para>
+ </listitem>
+ <listitem>
+ <para>Steps to reproduce the issue</para>
+ </listitem>
+ </orderedlist>
+
+ <para><property moreinfo="none">JBDS</property> subscribers can get necessary support on our <ulink url="https://network.jboss.com/jbossnetwork/login.html">Support Portal</ulink>.</para>
+ </section>
+
+
+ <section id="OtherRelevantResourcesOnTheTopic33">
+ <?dbhtml filename="OtherRelevantResourcesOnTheTopic33.html"?>
+ <title>Other relevant resources on the topic</title>
+ <para>JBDS on JBoss: <ulink url="http://labs.jboss.com/rhdevstudio/">JBoss Developer
+ Studio</ulink></para>
+ <para>Forum: <ulink url="http://www.jboss.com/index.html?module=bb&op=viewforum&f=258">JBoss
+ Forum</ulink></para>
+ <para>Subscription: <ulink url="https://www.redhat.com/apps/store/developers/jboss_developer_studio.html">JBDS
+ Subscription</ulink></para>
+
+ <para>The latest documentation builds are available <ulink url="http://download.jboss.org/jbosstools/nightly-docs/">here</ulink>.</para>
+ </section>
+
+</chapter>
+
+
+<chapter id="manage" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/documentation/guides/GettingStartedGuide/en/modules/manage.xml" xreflabel="manage">
+ <?dbhtml filename="manage.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Deploy</keyword>
+ <keyword>Deployment</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Manage JBoss AS from JBoss Developer Studio</title>
+
+ <para>In this chapter we'll focus more on how to operate the <property moreinfo="none">JBoss
+ AS</property> from <property moreinfo="none">JBoss Developer Studio</property>.</para>
+ <para><property moreinfo="none">JBoss Developer Studio</property> ships with <property moreinfo="none">JBoss EAP
+ v.4.2</property> bundled. When you followed the default installation of <property moreinfo="none">JBoss
+ Developer Studio</property>, you should already have a JBoss 4.2 Server installed and
+ defined. To run JBoss AS 4.2 you need JDK 1.5, JDK 6 is not formally supported yet, although
+ you may be able to start the server with it.</para>
+
+ <section id="JBossbundled">
+ <?dbhtml filename="JBossbundled.html"?>
+ <title>How to Manage the JBoss AS Bundled in JBDS</title>
+ <para>This section covers the basics of working with the <property moreinfo="none">JBoss Server</property>
+ supported directly by <property moreinfo="none">JBDS</property> via bundled AS plug-in. To read more
+ about AS plug-in, refer to the <ulink url="../../as/html_single/index.html">Server Manager guide</ulink>.</para>
+
+ <section id="StartingServer">
+ <?dbhtml filename="StartingServer.html"?>
+ <title>Starting JBoss Server</title>
+ <para>Starting <property moreinfo="none">JBoss Server</property> is quite simple. <property moreinfo="none">JBoss
+ Developer Studio</property> allows you to control its behaviour with the help of
+ a special toolbar: where you could start it in a regular or debug mode, stop it or
+ restart it.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>To launch the server click the green-with-white-arrow icon on the
+ <property moreinfo="none">JBoss Server View </property>or right click server name in
+ this view and select <emphasis>
+ <property moreinfo="none">Start</property>
+ </emphasis>. If this view is not open, select <emphasis>
+ <property moreinfo="none">Window > Show View > Other > Server
+ > JBoss Server View</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Starting from Icon</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure float="0">
+ <title>Starting from JBoss Server View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>While launching, server output is written to the <property moreinfo="none">Console
+ view</property>:</para>
+
+ <figure float="0">
+ <title>Console Output</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>When the server is started you should see <emphasis>
+ <property moreinfo="none">Started</property>
+ </emphasis> right to its name in <property moreinfo="none">JBoss Server View</property> (column
+ "Status").</para>
+ <figure float="0">
+ <title>Server is Started</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>To see event log after the server is started, expand <property moreinfo="none">Event
+ Log</property> branch beneath <property moreinfo="none">JBoss Server View</property>:</para>
+ <figure float="0">
+ <title>Event Log</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="StoppingJBoss">
+ <?dbhtml filename="StoppingJBoss.html"?>
+ <title>Stopping JBoss Server</title>
+ <para>To stop the server, click the <emphasis>
+ <property moreinfo="none">Stop</property>
+ </emphasis> icon in <property moreinfo="none">JBoss Server view</property> or right click the server
+ name and press <emphasis>
+ <property moreinfo="none">Stop</property>
+ </emphasis>.</para>
+ <figure float="0">
+ <title>Stopping Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>When the server is stopped you will see <emphasis>
+ <property moreinfo="none">Stopped</property>
+ </emphasis> next to its name in the Status column.</para>
+ </section>
+ <section id="ServerPreferences">
+ <?dbhtml filename="ServerPreferences.html"?>
+ <title>Server Container Preferences</title>
+ <para>You can control how <property moreinfo="none">JBoss Developer Studio</property> interacts with server containers in the
+ <property moreinfo="none">Server editor</property>. Double-click the server to open it in the editor.</para>
+
+ <figure float="0">
+ <title>Server Overview</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Here you can specify some common settings: host name, server
+ name, runtime as well as settings related to the publishing, timeouts and server ports.</para>
+
+ </section>
+ </section>
+
+ <section id="JBossInstances">
+ <?dbhtml filename="JBossInstances.html"?>
+ <title>How to Use Your Own JBoss AS Instance with JBDS</title>
+ <para>Although <property moreinfo="none">JBoss Developer Studio</property> works closely with <property moreinfo="none">JBoss EAP 4.2</property>
+ we do not ultimately tie you to any particular server for deployment. There are some
+ servers that Studio supports directly (via the bundled Eclipse WTP plug-ins). In this
+ section we discuss how to manage self-installed JBoss AS. Suppose you want to deploy the
+ application to <property moreinfo="none">JBoss 4.2.1 server</property>. First of all you need to install
+ it.</para>
+ <section id="JBossInstalling">
+ <?dbhtml filename="JBossInstalling.html"?>
+ <title>JBoss AS Installation</title>
+ <itemizedlist>
+ <listitem>
+ <para>Download the binary package of <property moreinfo="none">JBoss 4.2.1</property> and save
+ it on your computer: <ulink url="http://labs.jboss.com/jbossas/downloads">http://labs.jboss.com/jbossas/downloads</ulink></para>
+ </listitem>
+ </itemizedlist>
+ <para>It does not matter where on your system you install JBoss server.</para>
+
+ <note>
+ <title>Note:</title>
+ <para>The installation of JBoss server into a directory that has a name containing
+ spaces provokes problems in some situations with Sun-based VMs. Try to avoid
+ using installation folders that have spaces in their names.</para>
+ </note>
+
+ <para>There is no requirement for root access to run JBoss Server on UNIX/Linux systems
+ because none of the default ports are within the 0-1023 privileged port range.</para>
+ <itemizedlist>
+ <listitem>
+ <para>After you have the binary archive you want to install, use the JDK jar
+ tool (or any other ZIP extraction tool) to extract the jboss-4.2.1.zip
+ archive contents into a location of your choice. The jboss-4.2.1.tgz archive
+ is a gzipped tar file that requires a gnutar compatible tar which can handle
+ the long pathnames in the archive. The extraction process will create a
+ jboss-4.2.1 directory. </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="AddingJBossServer">
+ <?dbhtml filename="AddingJBossServer.html"?>
+ <title>Adding and configuring JBoss Server</title>
+ <para>Now we should add just installed server into server manager in <property moreinfo="none">JBoss Developer
+ Studio</property>.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Open the JBoss Server View by selecting <emphasis>
+ <property moreinfo="none">Window > Show View > Other > Server
+ > JBoss Server View</property>
+ </emphasis>. You will see JBoss Server view.</para>
+ </listitem>
+ <listitem>
+ <para>Right click anywhere in this view and select <emphasis>
+ <property moreinfo="none">New Server</property>
+ </emphasis>.</para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">JBoss, a division of Red Hat > JBoss v4.2</property>
+ </emphasis> and click the <emphasis>
+ <property moreinfo="none">Installed Runtimes</property>
+ </emphasis> button to select a new installed runtime.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Selecting Server Type</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Add</property>
+ </emphasis> button to add a new JBoss runtime.</para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">JBoss, a division of Red Hat > JBoss v4.2</property>
+ </emphasis> and press <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>Installed Runtimes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+ <itemizedlist>
+ <listitem>
+ <para>In the next step make JBoss Developer Studio to know where you have
+ installed the server and define JRE.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Defining JBoss Runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <note>
+ <title>Note:</title>
+ <para>When adding a new server you will need to specify what JRE to use. It is
+ important to set this value to a full JDK, not JRE. Again, you need a full JDK
+ to run Web applications, JRE will not be enough.</para>
+ </note>
+ <itemizedlist>
+ <listitem>
+ <para>In the following window leave all settings default or give your name to a
+ new jboss server and press <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis>.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Adding New Runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>A new runtime will now appear in the <emphasis>
+ <property moreinfo="none">Preferences > Server > Installed Runtimes</property>
+ </emphasis> dialog.</para>
+ <figure float="0">
+ <title>Runtime is Added</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">OK</property>
+ </emphasis>. Then select a new added runtime in Server runtime drop down
+ list and click <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> button twice.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Choosing Runtime</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>In the next dialog verify a <property moreinfo="none">JBoss</property> runtime information
+ and if something is unfair go back and correct it.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Configuring Projects</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>In the last wizard's dialog modify the projects that are
+ configured on the server and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis>.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Configuring Projects</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_16.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>A new JBoss server should now appear in JBoss Server View.</para>
+ <figure float="0">
+ <title>New JBoss Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/manage/manage_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Now, we are ready to create the first web application.</para>
+ </section>
+
+ </section>
+</chapter>
+
+
+<chapter id="first_seam" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/documentation/guides/GettingStartedGuide/en/modules/first_seam.xml" xreflabel="first_seam">
+ <?dbhtml filename="first_seam.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Seam</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Write Your First Project with JBoss Developer Studio</title>
+
+ <para>This chapter is a set of hands-on labs. You get step-by-step information about how the JBoss
+ Developer Studio can be used during the development process.</para>
+
+ <section id="create_seam_application">
+ <title>Create a Seam Application</title>
+
+ <para>In this section you get to know how to create a Seam project in JBDS, how to start the
+ server and what a structure your project has after creating.</para>
+
+ <section id="start_dev_db">
+ <title>Start Development Database</title>
+
+ <para>Before opening the JBoss Developer studio you need to <ulink url="http://anonsvn.jboss.org/repos/jbosstools/trunk/documentation/guides/Gett...">download</ulink> and start a Workshop Database.</para>
+ <para>To start the database just run <property moreinfo="none">./runDBServer.sh</property> or
+ <property moreinfo="none">runDBServer.bat</property> from the database directory.</para>
+ <para>The end result should be a console window that looks like:</para>
+
+ <figure float="0">
+ <title>Starting DataBase</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="create_deploy_seam">
+ <title>Create and deploy Seam Web Project</title>
+
+ <para>Minimize the terminal window and run the <property moreinfo="none">JBoss Developer Studio</property>
+ from Applications Menu or from the desktop icon.</para>
+ <para>First of all you get the Workspace Launcher. Change the default workspace location if
+ it's needed. Click on <property moreinfo="none">Ok</property>. </para>
+
+ <figure float="0">
+ <title>Workspace Launcher Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>After startup, you see the welcome page. You could read how to work with welcome pages
+ in <link linkend="Welcome">previous</link> chapter. Now select <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Create
+ New...</diffmk:wrapper></property> icon and then press on <property moreinfo="none">Create Seam Project</property><diffmk:wrapper diffmk:change="changed">
+ link.</diffmk:wrapper></para>
+
+ <para>The <property moreinfo="none">New Seam Project wizard</property> is started. You need to enter a name
+ (e.g., "workshop") and a location directory for your new project. The
+ wizard has an option for selecting the actual Server (and not just WTP runtime) that will be
+ used for the project. This allows the wizard to correctly identify where the needed
+ datasource and driver libraries need to go.</para>
+
+ <figure float="0">
+ <title>New Seam Project Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">All settings are already specified here, you can just modify the Configuration. Click on
+ the </diffmk:wrapper><emphasis>
+ <property moreinfo="none">Modify...</property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> button to configure your custom facets pattern:</diffmk:wrapper></para>
+
+
+ <figure float="0" id="ProjectFacetsSpecifyingScreen">
+ <title>Project Facets Specifying</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="added">On the whole the dialog allows to select the "features" you want to use in your project.
+ Doing this </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss Developer Studio</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> setups the appropriate tooling for
+ your project. Since JBoss Seam integrates all popular Java EE frameworks, you can select any
+ combination of technologies from the list. Here, for the default configuration, Dynamic Web
+ Module, Java, JavaServer Faces (JSF), and Seam Facet are already selected for a typical
+ database-driven web application. The default project facets should suffice.</diffmk:wrapper></para>
+
+ <para diffmk:change="added">In the <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Project Facets</diffmk:wrapper></property><diffmk:wrapper diffmk:change="changed"> form you can also bring up server runtimes
+ panel by clicking </diffmk:wrapper><property moreinfo="none"> Runtimes</property><diffmk:wrapper diffmk:change="changed"> tab on the right corner. This panel shows
+ available server runtimes.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Runtimes Selecting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Click on <emphasis>
+ <property moreinfo="none">Ok</property>
+ </emphasis> and then <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> to proceed further.</para>
+
+ <para>A dynamic web application contains both web pages and Java code. The wizard will ask you
+ where you want to put those files. You can just leave the default values or choose another
+ folder.</para>
+
+ <figure float="0">
+ <title>Web Module Settings</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>On the next form, you will be able to select where those library JARs come from. The
+ easiest is just to select the JARs provided by the JBoss AS runtime associated with this
+ project. That is why it is important to chose the right JBoss AS 4.2 runtime in the project
+ setup window.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Check <emphasis>
+ <property moreinfo="none">Server Supplied JSF Implementation</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed">. We will use </diffmk:wrapper><ulink url="../../seam/html_single/index.html#addJSFCapab"><diffmk:wrapper diffmk:change="changed">JSF
+ implementation</diffmk:wrapper></ulink> that comes with JBoss server</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <figure float="0">
+ <title>JSF Capabilities Adding</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">Next wizard step needs more settings that previous. Let's start with
+ </diffmk:wrapper><property moreinfo="none">General</property> section.</para>
+ <para>Leave the default Seam runtime and check a WAR deployment.</para>
+
+ <figure float="0">
+ <title>Seam Facet Setting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Next <property moreinfo="none">Database</property> section is a little tricky. The <property moreinfo="none">Connection
+ Profile</property> needs to be edited so that the new project works properly with the
+ external HSQLDB server. By default the project wizard tries to use the JBoss embedded
+ HSQLDB, but the tutorial uses an external database to replicate a more real world
+ development scenario. Click on <property moreinfo="none">Edit</property><diffmk:wrapper diffmk:change="changed"> to modify the Connection
+ Profile.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>DataBase Setting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam8_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Select <property moreinfo="none">JDBC Connection Properties</property>. Make sure the URL is set to <emphasis>
+ <property moreinfo="none">jdbc:hsqldb:hsql://localhost:1701</property>
+ </emphasis></para>
+
+ <figure float="0">
+ <title>JDBC Connection Properties</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Try click on <property moreinfo="none">Test Connection</property> button. It probably won’t work. This
+ happens if the hsql jdbc driver is not exactly the same. This can be worked around by
+ modifying the HSQLDB database driver settings. To modify the settings, click the
+ <property moreinfo="none">“...”</property> next to the drop-down box.</para>
+
+ <para>The proper Driver JAR File should be listed under <property moreinfo="none">Driver File(s)</property><diffmk:wrapper diffmk:change="changed">.
+ Select the hsqldb.jar file found in the database/lib directory and click on
+ </diffmk:wrapper><property moreinfo="none">Ok</property>.</para>
+
+ <figure float="0">
+ <title>Driver Details</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Select <property moreinfo="none">Hypersonic DB</property> and click on <property moreinfo="none">Ok</property>. Again,
+ this only happens if the selected hsqldb.jar is different from the running database.</para>
+
+ <figure float="0">
+ <title>Hypersonic DB Selecting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Now, the <property moreinfo="none">Test Connection</property> should succeed. After testing the
+ connection, click on Ok.</para>
+
+ <figure float="0">
+ <title>Connection Testing</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can leave the <property moreinfo="none">Code Generation</property> section as is. It refers to Java
+ packages in which the generated code will be placed.</para>
+
+ <figure float="0">
+ <title>Code Generation Setting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Click on <property moreinfo="none">Finish</property> button. Now, there should be a new Seam project
+ called “workshop” listed in Package Explorer view.</para>
+
+ <figure float="0">
+ <title>"worskhop" Project in the Package Explorer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="start_JBossAS">
+ <title>Start JBoss Application Server</title>
+
+ <para>The complete information on how to manage JBoss AS from JBoss Developer Studio you can
+ read in a <link linkend="manage">corresponding chapter</link>.</para>
+ <para>Now you just need to start the server by clicking on green circle/triangle icon in the
+ JBoss Server View.</para>
+
+ <figure float="0">
+ <title>Starting the Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Then run the project by selecting the project and use <emphasis><property moreinfo="none">Run As... >
+ Run on Server</property>.</emphasis></para>
+
+ <note>
+ <title>Note:</title>
+ <para>If the project does not show up, then you can use a normal browser and use <emphasis>
+ <property moreinfo="none">http://localhost:8080/workshop/home.seam</property>
+ </emphasis> as the url.</para>
+ </note>
+
+ <para>Your project looks like this:</para>
+
+ <figure float="0">
+ <title>"workshop" Project Started</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam16.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="workshop_code_overview">
+ <title>Workshop Project Code Overview</title>
+
+ <para>Now let's examine the project and its structure. Go back to the Package Explorer view in
+ JBoss Developer Studio.</para>
+
+ <para>It seems like it's not much for project but this shell application contains a login
+ screen with default login logic, a menu template that can be further modified, and other
+ layout templates.</para>
+
+ <para><diffmk:wrapper diffmk:change="changed">It's important to note that the business logic will reside in the </diffmk:wrapper><emphasis>
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">src/hot</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> folder, by default. And, the package naming conventions that were used in </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">New Seam
+ project wizard</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> could have been changed to something different from </diffmk:wrapper><emphasis>
+ <property moreinfo="none">org.domain.workshop.session</property><diffmk:wrapper diffmk:change="changed">.
+ </diffmk:wrapper></emphasis><diffmk:wrapper diffmk:change="changed"> Also, notice that there is a default </diffmk:wrapper><property moreinfo="none">Authenticator. java</property>
+ file. This is where custom security logic can be added. Seam has a nice declarative security
+ model that we will explore in a bit more detail later on. The <emphasis>
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">src/main</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> folder is a model directory. It stores the project's JPA entity beans.</diffmk:wrapper></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Project Structure</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/first_seam/first_seam17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added"><diffmk:wrapper diffmk:change="added">The view tier of the
+ application is also important. Seam uses facelets and there is a built-in facelets GUI
+ editor that has some nice WYSIWYG and component drag/drop functionality. Try this out by
+ opening </diffmk:wrapper><property moreinfo="none">home.xhtml</property> from <property moreinfo="none">WebContent</property> folder.</para>
+
+ <figure float="0">
+ <title>Facelets GUI Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam18.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Notice that the templates reside in the <emphasis>
+ <property moreinfo="none">WebContent/layout</property>
+ </emphasis> folder. There is a stylesheet in the <emphasis>
+ <property moreinfo="none">WebContent/stylesheet</property>
+ </emphasis> folder. There is also a login and default error page. The Facelet editor will be
+ explored in more detail later in the lab.</para>
+
+ <para>The project already has a datasource that was created per the Seam project wizard
+ database settings. And, obviously all of the Seam specific configuration files and JAR
+ dependencies are included and placed in the proper locations. On last noteworthy line item
+ is related to the build script. There isn’t a build script because the Eclipse WTP(Web Tools
+ Project) plugin is used to publish web application changes. As you can see, JBoss Developer
+ Studio is removing a great deal of complexity from the enterprise Java project
+ setup/deployment process. The end result is a developer that is writing code, not spending
+ days/weeks trying to figure out how to get a decent development environment and project
+ build process.</para>
+
+ </section>
+
+ </section>
+
+
+ <section id="seam_action_dev">
+ <title>Seam Action Development</title>
+
+ <para>Now, it’s time to write some code. The good news is that JBoss Developer Studio can also
+ help out in this respect. In this section, we will create a new Seam Action POJO and facelet
+ with some custom business logic and some GUI changes.</para>
+
+ <section id="create_seam_action">
+ <title>Create a New Seam Action</title>
+
+ <para>Go to main menu bar and click on <emphasis>
+ <property moreinfo="none">File > New > New Seam Action</property>
+ </emphasis> to start the New Seam Action wizard.</para>
+
+ <para>Specify a <property moreinfo="none">Seam component name</property> (e.g., "myAction").
+ The other properties will be auto-completed for you so there is no need to change them.
+ Click on <property moreinfo="none">Finish</property>.</para>
+
+ <figure float="0">
+ <title>New Seam Action Wizard</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam19.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Now, open the <property moreinfo="none">MyAction.java</property> file and replace the
+ "myAction" method with this logic:</para>
+
+ <programlisting format="linespecific"><![CDATA[public void myAction() {
+Calendar cal = Calendar.getInstance();
+log.info("myAction.myAction() action called");
+facesMessages.add("MyAction Executed on:" + cal.getTime());
+}]]></programlisting>
+
+ <para>You also need to import the <property moreinfo="none">java.util.Calendar</property> class by clicking
+ <emphasis><property moreinfo="none">CTRL + Shift + O</property>.</emphasis></para>
+
+ </section>
+
+ <section id="test_seam_action">
+ <title>Test Seam Action</title>
+
+ <para>The new action can be tested by browsing the workshop-test project. JBoss Developer
+ Studio has already created a TestNG test case for you.</para>
+
+ <figure float="0">
+ <title>"workshop-test" Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam20.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The test case simulates a Seam component/method execution for the
+ <property moreinfo="none">MyAction.myAction()</property> logic.</para>
+ <para>To run the test case, right click on <property moreinfo="none">MyActionTest.xml</property> and click <emphasis>
+ <property moreinfo="none">Run As > TestNG Suite</property>
+ </emphasis> or use the <property moreinfo="none">Run As...</property><diffmk:wrapper diffmk:change="changed"> toolbar shortcut as shown
+ below.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>TestNG Running</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam21.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>With any luck, the test case will pass. Look at the TestNG view.</para>
+
+ <figure float="0">
+ <title>TestNG Results</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam22.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Now, it’s safe to test the new Seam Action in a web browser. The fastest way to do that
+ is to right click on <property moreinfo="none">myAction.xhtml</property> and use <emphasis>
+ <property moreinfo="none">Run As... > Run On Server</property>
+ </emphasis> which will show the appropriate url in the browser. Alternatively you can
+ manually enter <emphasis>
+ <property moreinfo="none">http://localhost:8080/workshop/myAction.seam</property>
+ </emphasis> into a browser.</para>
+
+ <figure float="0">
+ <title>Seam Action in a Web Browser</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam23.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="modify_seam_action">
+ <title>Modify Seam Action User Interface</title>
+
+ <para>Browse to <emphasis>
+ <property moreinfo="none">http://localhost:8080/workshop/myAction.seam</property>
+ </emphasis> and click on <property moreinfo="none">myAction</property>. This executes the “myAction” method.
+ This looks pretty good, but we could make this page look a little better.</para>
+
+ <para>Open <emphasis>
+ <property moreinfo="none">WebContent/myAction.xhtml</property>
+ </emphasis> in JBoss Developer Studio to use the nice facelets editor.</para>
+
+ <figure float="0">
+ <title>Open Seam Action with Editor </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam24.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Right click on the "myAction!" button in the visual part of editor and
+ select <property moreinfo="none"><h:commandButton> Attributes</property>.</para>
+
+ <figure float="0">
+ <title>Seam Action Editing</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam25.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Change the <property moreinfo="none">value</property> of the button to something different. If desired,
+ you can change any other text on the page. Then, type <emphasis>
+ <property moreinfo="none">CTRL + S</property>
+ </emphasis> to save the facelet.</para>
+
+ <figure float="0">
+ <title>Attributes Dialog</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam26.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Refresh <emphasis>
+ <property moreinfo="none">http://localhost:8080/workshop/myAction.seam</property>
+ </emphasis> and now you should see your changes.</para>
+
+ <para>Notice that you did not have to publish the application. JBoss Developer Studio
+ auto-published it for you.</para>
+
+ <figure float="0">
+ <title>Seam Action Is Modified</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam27.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+
+ </section>
+
+ <section id="declarative_security">
+ <title>Declarative Security</title>
+
+ <para><diffmk:wrapper diffmk:change="changed">In this section you will see how it’s easy to secure the facelets and facelet components
+ in Seam. Let’s go ahead and secure the action button, then we will secure the entire
+ page.</diffmk:wrapper></para>
+
+ <section id="edit_login">
+ <title>Edit Login Authentication Logic</title>
+
+ <para>There is a class called <property moreinfo="none">Authenticator.java</property>. The login page will
+ execute the <property moreinfo="none">Authenticator.authenticate()</property> method by default, so we’ll
+ start by adding some custom login logic.</para>
+ <para>Open <property moreinfo="none">Authenticator.java</property> in JBoss Developer Studio and replace the
+ <property moreinfo="none">authenticate()</property> method with this code:</para>
+
+ <programlisting format="linespecific"><![CDATA[public boolean authenticate() {
+if (identity.getUsername().equals("admin")
+&& identity.getPassword().equals("password")) {
+identity.addRole("admin");
+return true;
+}
+else
+return true;
+}]]></programlisting>
+
+ </section>
+ <section id="secure_seam_page">
+ <title>Secure Seam Page Component</title>
+
+ <para>Open <property moreinfo="none">myAction.xhtml</property> and add a new secured command button:</para>
+ <programlisting format="linespecific"><![CDATA[<h:commandButton id="myActionSecured"
+value="Secured Action Button"
+action="#{myAction.myAction}"
+rendered="#{s:hasRole('admin')}"/>]]></programlisting>
+
+ <para>Refresh <emphasis>
+ <property moreinfo="none">http://localhost:8080/workshop/myAction.seam</property>
+ </emphasis> If you are not logged in you will only see one button. If you are logged in,
+ there will be two buttons.</para>
+
+
+ <figure float="0">
+ <title>One Button on a Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam28.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The secured button is not visible because the user isn’t logged in as
+ <property moreinfo="none">"admin"</property>.</para>
+
+ <figure float="0">
+ <title>Secured Button is Visible</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam29.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The user is logged in as <property moreinfo="none">"admin"</property>. Securing
+ components is easy but securing pages is pretty simple as well. </para>
+ <para>Open <emphasis>
+ <property moreinfo="none">WebContent/WEB-INF/pages.xml</property>
+ </emphasis><diffmk:wrapper diffmk:change="changed">. Then add this markup directly underneath the <pages>
+ element:</diffmk:wrapper></para>
+
+ <programlisting format="linespecific"><![CDATA[<page view-id="/myAction.xhtml" login-required="true"/>]]></programlisting>
+
+ <para>Refresh <emphasis>
+ <property moreinfo="none">http://localhost:8080/workshop/myAction.seam</property>
+ </emphasis> If you are not logged in you will get bounced back to the login page.</para>
+
+ <figure float="0">
+ <title>Login Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam30.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">Thus, if you enter login credentials for the
+ </diffmk:wrapper><property moreinfo="none">"admin"</property><diffmk:wrapper diffmk:change="changed"> user, you will be re-directed to the
+ secured page and secured component. If you enter different login credentials, page access
+ will be granted, but the secured component will not be displayed.</diffmk:wrapper></para>
+
+ <para>Congratulations! You have secured your new action both at the facelet component and page
+ level. You also added custom authentication logic to the login action.</para>
+
+ </section>
+
+ </section>
+
+ <section id="browsing_workshop_db">
+ <title>Browsing Workshop Database</title>
+
+ <para>In this section you get to know how to use the workshop database that was started at the
+ beginning of the lab.</para>
+
+ <section id="database_connectivity">
+ <title>Database Connectivity Setup</title>
+
+ <para>The workshop data can be browsed inside of JBoss Developer Studio.</para>
+
+ <para>To open the Data Source Explorer, click on <emphasis><property moreinfo="none">Window > Open Perspective
+ > Other > Database Development</property>.</emphasis></para>
+ <para>In the Data Source Explorer, expand a <property moreinfo="none">Databases</property> node and select a
+ <property moreinfo="none">Default</property><diffmk:wrapper diffmk:change="changed"> database. Right click on it, select
+ </diffmk:wrapper><property moreinfo="none">Connect</property> from the context menu.</para>
+
+ <figure float="0">
+ <title>Data Source Explorer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam31.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="browsing_workshop_db2">
+ <title>Browse Workshop Database</title>
+
+ <para>Then in the current view, drill down to the <property moreinfo="none">CUSTOMERS</property> table.</para>
+
+ <figure float="0">
+ <title>"CUSTOMERS" Table</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam32.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Right click on <property moreinfo="none">CUSTOMERS</property>, select <emphasis>
+ <property moreinfo="none">Data > Sample Contents</property>
+ </emphasis> to view the data in the table.</para>
+
+ <para>There should be a SQL Results view on the workbench, but it could be hidden. Click on
+ the <property moreinfo="none">"Result1"</property> tab in the right side and you should
+ see the data in the CUSTOMERS table.</para>
+
+
+ <figure float="0">
+ <title>SQL Results View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam33.png" scale="92"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <note>
+ <title>Note:</title>
+ <para>If you can’t find the SQL Results view tab, click on <emphasis><property moreinfo="none">Window > Show
+ View > Other > SQL Development > SQL Results</property>.</emphasis></para>
+ </note>
+
+ <para>Congratulations! You just connected to the workshop database and queried the content
+ using Database Explorer tools.</para>
+
+ </section>
+
+ </section>
+
+ <section id="db_programming">
+ <title>Database Programming</title>
+
+ <para>Now, it’s time to reverse engineer the workshop database into a fully functioning Seam
+ CRUD(Create Read Update Delete) application.</para>
+
+ <section id="reverse_engineer_crud">
+ <title>Reverse Engineer CRUD from a Running Database</title>
+
+ <para><diffmk:wrapper diffmk:change="added">In </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">JBoss Developer Studio</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">, switch to </diffmk:wrapper><property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Seam
+ perspective</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">, and then right-click the project and select
+ </diffmk:wrapper><emphasis><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">New > Seam Generate Entities</diffmk:wrapper></property>.</emphasis></para>
+
+ <para><diffmk:wrapper diffmk:change="changed">"workshop" project in the </diffmk:wrapper><property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Seam Generate Entities
+ wizard</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added"> will be selected automatically. There is no need to change something
+ more, click </diffmk:wrapper><emphasis diffmk:change="added">
+ <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">Next</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> to proceed further.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>Generate Seam Entities</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam34.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="added">On the next page use the </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Include</diffmk:wrapper></property>
+ </emphasis><diffmk:wrapper diffmk:change="added"> button to include all the tables from the database and click </diffmk:wrapper><emphasis diffmk:change="added">
+ <property diffmk:change="added" moreinfo="none"><diffmk:wrapper diffmk:change="added">Finish</diffmk:wrapper></property><diffmk:wrapper diffmk:change="added">.</diffmk:wrapper></emphasis></para>
+
+ <figure diffmk:change="added" float="0">
+ <title diffmk:change="added"><diffmk:wrapper diffmk:change="added">Selecting Tables</diffmk:wrapper></title>
+ <mediaobject diffmk:change="added">
+ <imageobject diffmk:change="added">
+ <imagedata diffmk:change="added" fileref="images/first_seam/first_seam34a.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para diffmk:change="added">After running the Generate Entities action, you will see new <emphasis>
+ <property moreinfo="none">org.domain.workshop.entity</property>
+ </emphasis> classes. These classes represent insert/update/delete/query logic.</para>
+
+ <figure float="0">
+ <title>org.domain.workshop.entity Classes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam35.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>There are also <emphasis>
+ <property moreinfo="none">org.domain.workshop.entity</property>
+ </emphasis> package that contains the JPA classes. These are the entity beans that are
+ mapped to database tables.</para>
+
+ <para>Last, but not least, there are facelets for all of the CRUD screens. The best way to get
+ a feel for the generated code is to open a browser and play around with the application. Go
+ to <emphasis>
+ <property moreinfo="none">http://localhost:8080/workshop</property>
+ </emphasis> and insert/update/delete/query a few records. There is quite a bit of AJAX in
+ this application, but which we will explore further later on in the lab. For now, take note
+ of the page tabs, required field logic and data table sorting in the list pages. </para>
+
+ <figure float="0">
+ <title>CustomersList.xhtml in the Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam36.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Congratulations! You now have a fully functioning CRUD application that is already AJAX
+ enabled.</para>
+
+ </section>
+
+ <section id="use_hibernate_tools">
+ <title>Use Hibernate Tools to Query Data via JPA</title>
+
+ <para>Now, it's time to write some JPA queries using the Hibernate perspective in
+ <property moreinfo="none">JBoss Developer Studio</property>.</para>
+ <para>In the upper right corner of the workbench there is a small icon (see the figure below),
+ click on it and choose <property moreinfo="none">Hibernate</property>.</para>
+
+ <figure float="0">
+ <title>Hibernate Perspective</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam37.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Look at the Hibernate Configurations view. In the "workshop" project,
+ drill down on the <property moreinfo="none">Session Factory</property> and notice that the JPA
+ entities/attributes are listed in a nice tree view.</para>
+
+ <figure float="0">
+ <title>Hibernate Configurations View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam38.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Right click on the <property moreinfo="none">Session Factory</property> and select <property moreinfo="none"><diffmk:wrapper diffmk:change="changed">HQL
+ Editor</diffmk:wrapper></property>. This will open a JPA query scratch pad window.</para>
+
+ <para>Write your query and click on the "Hibernate Dynamic SQL Preview" tab.
+ You should see the SQL that will be executed if this JPA query is run.</para>
+
+ <figure float="0">
+ <title>JPA Query Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam39.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Run the query by clicking on the green run icon.</para>
+
+ <para>The results are listed in the "Hibernate Query Result" tab. There is a
+ "Properties" tab in the workbench that can be used to see a specific JPA
+ result. These results represent the JPA objects because our query did not specify column
+ names.</para>
+
+ <figure float="0">
+ <title>Hibernate Query Result View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam40.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The query can be refined, and take note that there is nice code completion in the JPA
+ query editor.</para>
+
+ <figure float="0">
+ <title>Code Completion</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam41.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>A refined query will return results that are more ResultSet oriented. Notice the join
+ logic that JPA supports.</para>
+
+ <figure float="0">
+ <title>The Results</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam42.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>There was no need to specify an <property moreinfo="none">Employees</property> table in the
+ <property moreinfo="none">from</property> part of the JPA query because JPA supports reference traversal
+ via Java class attribute references. Not only are JPA and HQL queries fully supported, but
+ Criteria based queries can also be written in the Criteria Editor. You should spend some
+ time tinkering with different queries and possibly Criteria based queries, even though the
+ instructions are not provided in this lab.</para>
+
+ <figure float="0">
+ <title>Criteria Editor</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam43.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+
+ <section id="use_hibernate_to_vizualize">
+ <title>Use Hibernate Tools to visualize the Data Model</title>
+
+ <para>Now, it’s time to view the data model for the workshop database.</para>
+
+ <para>In the Hibernate Configurations view, select "workshop" project and
+ expand the <property moreinfo="none">Configuration</property><diffmk:wrapper diffmk:change="changed"> node. Select the
+ </diffmk:wrapper><property moreinfo="none">Customers</property> entity, right click on it, choose <property moreinfo="none">Open Mapping
+ Diagram</property>.</para>
+
+ <figure float="0">
+ <title>Mapping Diagram Opening</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam44.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>You see a Diagram tab for the CUSTOMERS table and any tables that have FK references.
+ This is a handy way to view the data model and JPA mappings. Now, you’ve got access to
+ something that the Erwin Data Modeler can’t do.</para>
+
+
+ <figure float="0">
+ <title>Diagram Tab</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam45.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ </section>
+
+
+ <section id="rich_components">
+ <title>Rich Components</title>
+
+ <para>This lab will conclude with one last AJAX twist. In this section we add a RichFaces
+ <property moreinfo="none">inputNumberSlider</property> to the Order Details edit screen.</para>
+
+ <section id="add_richfaces">
+ <title>Add a Richfaces component to the CRUD Application</title>
+
+ <para>Switch to Seam perspective, open <emphasis>
+ <property moreinfo="none">WebContent/OrderdetailsEdit.xhtml</property>
+ </emphasis> in JBoss Developer Studio.</para>
+ <para>Change the form field values using the visual editor. Seam has generated the form field
+ names that match the database column names. This is not ideal for business users.</para>
+
+ <figure float="0">
+ <title>Form Fields Editing</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam46.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Also, replace the QTY Ordered input field with a <property moreinfo="none">inputNumberSlider</property>.
+ You can use the JBoss Developer Studio palette or right click on the form and insert the
+ RichFaces component.</para>
+
+ <figure float="0">
+ <title>RichFaces Component Inserting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam47.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>One the last option is to use the source view and manually copy the inputNumberSlider
+ markup listed below:</para>
+
+ <programlisting format="linespecific"><![CDATA[<rich:inputNumberSlider id="quantityOrdered" required="true"
+ value="#{orderdetailsHome.instance.quantityordered}"/>]]></programlisting>
+
+ <figure float="0">
+ <title>Adding the Source</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam48.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para><diffmk:wrapper diffmk:change="changed">The end result is an edit page that has better form labels and a new RichFaces
+ control.</diffmk:wrapper></para>
+
+ <figure float="0">
+ <title>The Result Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/first_seam/first_seam49.png" scale="85"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Congratulations! You have completed the JBoss Developer Studio lab.</para>
+
+ </section>
+
+ </section>
+</chapter>
+
+
+<chapter id="jsp_application" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/documentation/guides/GettingStartedGuide/en/modules/jsp_application.xml" xreflabel="jsp_application">
+ <?dbhtml filename="jsp_application.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>JSP</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Developing a simple JSP web application</title>
+
+ <note>
+ <title>Note:</title>
+ <para>We highly recommend developing in <property moreinfo="none">Seam</property>. This chapter is for users
+ who for some reason cannot use Seam.</para>
+ </note>
+
+ <para>In this chapter you'll find out how to create a simple <ulink url="http://java.sun.com/products/jsp/">JSP</ulink> application using the
+ <property moreinfo="none">JBoss Developer Studio</property>. The application will show a classic
+ "Hello World!" on the page.</para>
+ <para>We'll assume that you have already launched <property moreinfo="none">JBoss Developer
+ Studio</property> and also that the <property moreinfo="none">Web Development</property> perspective is the
+ current perspective. If not, make it active by selecting <emphasis>
+ <property moreinfo="none">Window > Open Perspective > Web Development</property>
+ </emphasis> from the menu bar or by selecting <emphasis>
+ <property moreinfo="none">Window > Open Perspective > Other...</property>
+ </emphasis> from the menu bar and then selecting Web Development from the Select Perspective
+ dialog box.</para>
+
+ <section id="SettingUpTheProject">
+ <?dbhtml filename="SettingUpTheProject.html"?>
+ <title>Setting Up the Project</title>
+ <para>We are going to start with the creating a Dynamic Web Project with a minimal
+ structure, i.e. with just required facets. Thus this section will perform you all
+ necessary steps on how to do this.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Go to the menu bar and select <emphasis>
+ <property moreinfo="none">File > New > Other...</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">Web > Dynamic Web Project</property>
+ </emphasis> in the New Project dialog box</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Enter "jspHello" as a project name</para>
+ </listitem>
+ <listitem>
+ <para>Then select <emphasis>
+ <property moreinfo="none">Minimal Configuration</property>
+ </emphasis> from the list of possible configurations and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Create New Web Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The <emphasis>
+ <property moreinfo="none">jspHello</property>
+ </emphasis> node should appear in the upper-left <property moreinfo="none">Package Explorer</property>
+ view.</para>
+ <figure float="0">
+ <title>New Web Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="CreatingJSPPage">
+ <?dbhtml filename="CreatingJSPPage.html"?>
+ <title>Creating JSP Page</title>
+ <para>This section covers all the points how to create, edit and then preview JSP page.</para>
+ <para>In our simple application we need to create only one JSP page which displays a
+ <emphasis>"Hello World!"</emphasis> message.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Right click <emphasis><property moreinfo="none">WebContent > New >
+ JSP</property>. </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Type "hello.jsp" for a file name and click the <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> button.</para>
+ </listitem>
+ </itemizedlist>
+ <para>In the next window you can choose a template for your jsp page and see its preview.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">New JSP File (xhtml)</property>
+ </emphasis> template and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> button.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Create JSP Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Our <emphasis><property moreinfo="none">hello.jsp</property></emphasis><diffmk:wrapper diffmk:change="changed"> page will now appear in
+ </diffmk:wrapper><property moreinfo="none">Project Explorer</property><diffmk:wrapper diffmk:change="changed">.
+ </diffmk:wrapper></para>
+ <section id="EditingJSPPage">
+ <?dbhtml filename="EditingJSPPage.html"?>
+ <title>Editing a JSP Page</title>
+ <para>Let's now make a little change so that a jsp page displays
+ <emphasis>"Hello World!"</emphasis> message.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Insert this line inside the <emphasis role="bold">
+ <property moreinfo="none"><body></property>
+ </emphasis><emphasis role="bold">
+ <property moreinfo="none"></body></property>
+ </emphasis> tag: </para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<% System.out.println("Hello World!"); %>]]>
+</programlisting>
+
+ <para>Notice that content assist functionality is always available when you are typing:</para>
+ <figure float="0">
+ <title>Content Assist in JSP Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>After changes made your <emphasis>
+ <property moreinfo="none">hello.jsp</property>
+ </emphasis> page should look like this:</para>
+ <figure float="0">
+ <title>Hello.jsp Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>This line will actually output <emphasis>"Hello
+ World!"</emphasis> message in the <property moreinfo="none">Console</property>. To make the
+ message displayed in the Browser, just replace this line with the simple
+ <emphasis>Hello World!</emphasis>.</para>
+ </section>
+
+ <section id="WebXML">
+ <?dbhtml filename="WebXML.html"?>
+ <title>web.xml file</title>
+ <para>When you are creating web project the wizard creates the <emphasis>
+ <property moreinfo="none">web.xml</property>
+ </emphasis> for you automatically. The <property moreinfo="none">web.xml file editor</property>
+ provided by <property moreinfo="none">JBoss Developer Studio</property> is available in two modes:
+ <property moreinfo="none">Tree</property> and <property moreinfo="none">Source</property>.</para>
+ <figure float="0">
+ <title>Web.xml in Design and Source Mode</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_6.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Both modes are fully synchronized. Let's add mapping to our <emphasis>
+ <property moreinfo="none">hello.jsp</property>
+ </emphasis> page in <emphasis>
+ <property moreinfo="none">web.xml</property>
+ </emphasis> file.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Switch to <property moreinfo="none">Source</property> tab.</para>
+ </listitem>
+ <listitem>
+ <para>Add the next code into <emphasis role="bold">
+ <property moreinfo="none"><welcome-file-list></property>
+ </emphasis>:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<welcome-file>hello.jsp</welcome-file>
+]]></programlisting>
+ <para>If you come back to <property moreinfo="none">Tree</property> mode you will see that the changes
+ made are automatically reflected in that mode.</para>
+ <para>Actually you don't really need to do any configurations right now.</para>
+ </section>
+
+ <section id="DeployTheProject">
+ <?dbhtml filename="DeployTheProject.html"?>
+ <title>Deploying the project</title>
+ <para>While creating any web project you could experience a pain writing ant scripts and
+ managing the packaging even when writing the most trivial web applications. With
+ <property moreinfo="none">JBoss Developer Studio</property> you are saved from such a pain. All
+ you need is to start <property moreinfo="none">JBoss Server</property> and launch your application
+ in your favorite browser.</para>
+ <para>You can also create a war archive with <ulink url="../../as/html_single/index.html#Project_archivesView">JBDS's Archive Tools</ulink>
+ and export it to any web server.</para>
+ <section id="WarConfig">
+ <?dbhtml filename="WarConfig.html"?>
+ <title>WAR Config</title>
+ <para>Project archives managing is available through <ulink url="../../as/html_single/index.html#Project_archivesView">Project Archives view</ulink>.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">Window > Show view > Other > JBoss
+ Tools > Project archives</property>
+ </emphasis> from menu bar</para>
+ </listitem>
+ <listitem>
+ <para>Select a project in Package Explorer you want to be archived</para>
+ </listitem>
+ </itemizedlist>
+ <para>In <property moreinfo="none">Project Archives</property> you will see available archive types
+ for the project:</para>
+ <figure float="0">
+ <title>Project Archives</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Click, for example, <emphasis>
+ <property moreinfo="none">WAR</property>
+ </emphasis> option to create war archive</para>
+ </listitem>
+ </itemizedlist>
+ <para>In the <property moreinfo="none">New WAR</property> dialog you can see automatically selected
+ default values.</para>
+ <figure float="0">
+ <title>New WAR Archive</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> to see a stub archive configuration for your project: <figure float="0">
+ <title>Stub Archive Configuration</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Finish</property>. </emphasis> The
+ <emphasis>.war</emphasis> file will appear in <property moreinfo="none">Package
+ Explorer</property> and also in <property moreinfo="none">Project Archives</property>
+ view as structure tree: <figure float="0">
+ <title>Archive is Created</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <figure float="0">
+ <title>Archive in Project Archives View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Via <property moreinfo="none">Project Archives</property> view you could now edit your
+ archive, add new folders, publish to server, and so on:</para>
+ <figure float="0">
+ <title>Configure Archive</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="AutoRedeploy">
+ <?dbhtml filename="AutoRedeploy.html"?>
+ <title>Auto redeploy</title>
+ <para>When you are creating a web application and register it on <property moreinfo="none">JBoss
+ Server</property> it is automatically deployed into
+ <emphasis>/deploy</emphasis> directory of the server. JBDS comes with the
+ feature of auto-redeploy. It means that you don't need to restart
+ <property moreinfo="none">JBoss Server</property>. Any changes made in the application in
+ exploded format will trigger a redeployment on the server.</para>
+ </section>
+ </section>
+
+ <section id="Previewtab">
+ <?dbhtml filename="Previewtab.html"?>
+ <title>JSP Page Preview</title>
+ <para><property moreinfo="none">JBDS</property> comes with JSP design-time preview features. When
+ designing JSP pages you can easily preview how they will look during runtime. You
+ can even <ulink url="../../jsf/html_single/index.html#el_exp_para">attach your stylesheet to the
+ Preview</ulink>.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Make a little change to <emphasis>
+ <property moreinfo="none">hello.jsp</property>
+ </emphasis> page, e.g. put this code snippet:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<%= new java.util.Date() %>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Save</property>
+ </emphasis> button.</para>
+ </listitem>
+ <listitem>
+ <para>Switch to Preview page by clicking <property moreinfo="none">Preview</property> tab at the
+ bottom of the page. You will see how the page will look at runtime.</para>
+ </listitem>
+ </itemizedlist>
+ <!-- <figure>
+ <title>Preview Page</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_14.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+-->
+ </section>
+ <section id="LaunchingTheProject">
+ <?dbhtml filename="LaunchingTheProject.html"?>
+ <title>Launch JSP Project</title>
+ <para>Let's now launch our project on server. We'll use
+ <property moreinfo="none">JBoss Server</property> that is shipped with <property moreinfo="none">JBoss Developer
+ Studio</property>. You can do it by performing one of the following actions:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Start JBoss Server from <ulink url="../../as/html_single/index.html#JBossServerView">JBoss
+ Server view</ulink> by clicking the Start icon.</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Starting Server</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Click the Run icon or right click your project folder and select <emphasis>
+ <property moreinfo="none">Run As > Run on Server</property>. </emphasis> If you
+ haven't made any changes in <emphasis>
+ <property moreinfo="none">web.xml</property>
+ </emphasis> file or cleared it out you can launch the application by right
+ clicking the <emphasis>
+ <property moreinfo="none">hello.jsp</property>
+ </emphasis> page and selecting <emphasis>
+ <property moreinfo="none">Run on the Server</property>. </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Run Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_16.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>You should see the next page in a Browser :</para>
+ <figure float="0">
+ <title>Running Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jsp_application/jsp_application_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para><diffmk:wrapper diffmk:change="changed">Thus with the help of this chapter you've learnt how to organize a Dynamic
+ Web Project with a minimal configuration, add any staff to it (in our case it's
+ just one jsp page) and deploy and run it on the </diffmk:wrapper><property moreinfo="none">JBoss Server</property><diffmk:wrapper diffmk:change="changed">
+ shipped with </diffmk:wrapper><property moreinfo="none">JBDS</property><diffmk:wrapper diffmk:change="changed">.
+ </diffmk:wrapper></para>
+ </section>
+
+ </section>
+</chapter>
+
+
+<chapter id="rad_jsf_application" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/documentation/guides/GettingStartedGuide/en/modules/rad_jsf_application.xml" xreflabel="rad_jsf_application">
+ <?dbhtml filename="rad_jsf_application.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>JSF</keyword>
+ <keyword>JBoss</keyword>
+ <keyword>RAD</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>RAD development of a simple JSF application</title>
+
+ <note>
+ <title>Note:</title>
+ <para>We highly recommend developing in <property moreinfo="none">Seam</property>. This chapter is for users
+ who for some reason cannot use <property moreinfo="none">Seam</property>.</para>
+ </note>
+
+ <para>In this chapter you will see how to create a simple JSF application being based on
+ <property moreinfo="none">"RAD"</property> philosophy. We will create the familiar
+ Guess Number application. The scenario is the following. You are asked to guess a number
+ between 0 and 100. If the guess is correct, a success page is displayed with a link to play
+ again. If the guess is incorrect, a message is printed notifying that a smaller or a larger
+ number should be entered and the game continues.</para>
+ <para>We'll show you how to create such an application from scratch, along the way
+ demonstrating powerful features of JBoss Developer Studio such as project templating, Visual
+ Page Editor, code completion and others. You will design the JSF application and then run
+ the application from inside JBoss Developer Studio using the bundled JBoss server.</para>
+
+ <section id="SettingUpTheProject12">
+ <?dbhtml filename="SettingUpTheProject12.html"?>
+ <title>Setting up the project</title>
+ <para>First, you should create a JSF 1.2 project using an integrated JBDS's new
+ project wizard and predefined templates. Follow the next steps:</para>
+ <itemizedlist>
+ <listitem>
+ <para>In Web Projects View (if it is not open select <emphasis>
+ <property moreinfo="none">Window > Show View > Others > JBoss Tools Web
+ > Web Projects View</property>) </emphasis> click <emphasis>
+ <property moreinfo="none">Create New JSF Project</property>
+ </emphasis> button. <figure float="0">
+ <title>Create New JSF Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure></para>
+ </listitem>
+
+ <listitem>
+ <para>Put <property moreinfo="none">GuessNumber</property> as a project name, in JSF Environment
+ drop down list choose <property moreinfo="none">JSF 1.2</property></para>
+ </listitem>
+ <listitem>
+ <para>Leave everything else as it is and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>Our project will appear in Project Explorer and Web Projects Views. As you can see
+ JBoss Developer Studio has created for us the whole skeleton for the project with all
+ needed libraries, faces-config.xml and web.xml files.</para>
+ <figure float="0">
+ <title>New JSF Project</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>As the project has been set up, new JSP pages should be created now.</para>
+ </section>
+ <section id="CreatingJSPPages">
+ <?dbhtml filename="CreatingJSPPages.html"?>
+ <title>Creating JSP Pages</title>
+
+ <para>Here, we are going to add two pages to our application. The first page is
+ inputnumber.jsp. It prompts you to enter a number. If the guess is incorrect, the same
+ page will be redisplayed with a message indicating whether a smaller or a larger number
+ should be tried. The second page is success.jsp. This page will be shown after you guess
+ the number correctly. From this page you also have the option to play the game again.</para>
+
+ <para>Now, we will guide you through the steps on how to do this.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Open <emphasis>
+ <property moreinfo="none">faces-config.xml</property>
+ </emphasis> file</para>
+ </listitem>
+ <listitem>
+ <para>Right click anywhere on the diagram mode</para>
+ </listitem>
+ <listitem>
+ <para>From the context menu select <emphasis>
+ <property moreinfo="none">New View</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Create New View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">pages/inputnumber</property>
+ </emphasis> as the value for <emphasis>
+ <property moreinfo="none">From-view-id</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Leave everything else as is and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>In the same way create another jsf view. Type <emphasis>
+ <property moreinfo="none">pages/success</property>
+ </emphasis> as the value for <emphasis>
+ <property moreinfo="none">From-view-id</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">File > Save</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>On the diagram you will see two created views.</para>
+ <figure float="0">
+ <title>New Views</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section id="CreatingTransition">
+ <?dbhtml filename="CreatingTransition.html"?>
+ <title>Creating Transition between two views</title>
+ <para>Then, we should create connection between jsp pages.</para>
+ <itemizedlist>
+ <listitem>
+ <para>In the diagram, select the <emphasis>
+ <property moreinfo="none">Create New Connection</property>
+ </emphasis> icon third from the top along the upper left side of the diagram to
+ get an arrow cursor with a two-pronged plug at the arrow's bottom <figure float="0">
+ <title>Create Connection</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property moreinfo="none">pages/inputnumber</property>
+ </emphasis> page icon and then click on the <emphasis>
+ <property moreinfo="none">pages/success</property>
+ </emphasis> page icon</para>
+ </listitem>
+ </itemizedlist>
+ <para>A transition should appear between the two icons of views.</para>
+ <figure float="0">
+ <title>Created Connection</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">File > Save</property>
+ </emphasis> from the menu bar</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="CreatingResourceFile">
+ <?dbhtml filename="CreatingResourceFile.html"?>
+ <title>Creating Resource File</title>
+ <para>A resource file is just a file with a <emphasis>.properties</emphasis> extension for
+ collecting text messages in one central place. JBoss Developer Studio allows you to
+ create quickly a resource file. The messages stored in resource file can be displayed to
+ you on a Web page during application execution. </para>
+ <para>With resource file first, you don't hard code anything into the JSP pages.
+ And second, it makes it easier to translate your application to other languages. All you
+ have to do is to translate all your messages to the other language and save them in a
+ new properties file with a name that ends with the appropriate ISO-639 language code.</para>
+ <para>It is a good idea to keep your resources inside the <emphasis>
+ <property moreinfo="none">JavaSource</property>
+ </emphasis> folder, where you keep your .java files. Every time you build the project,
+ all <emphasis>.properties</emphasis> files will then be copied to the
+ <emphasis>classes</emphasis> folder by default.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Right click <emphasis>
+ <property moreinfo="none">JavaSource</property>
+ </emphasis> folder and select <emphasis>
+ <property moreinfo="none">New > Folder</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">game</property>
+ </emphasis> for Folder name and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>Your resource file and java bean will be stored in this folder.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Right click on <emphasis>
+ <property moreinfo="none">game folder</property>
+ </emphasis> and select <emphasis>
+ <property moreinfo="none">New > Properties File</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">messages</property>
+ </emphasis> as the value for "name" attribute and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>JBoss Developer Studio will automatically open
+ <property moreinfo="none">messages.properties</property> file for editing.</para>
+ <figure float="0">
+ <title>Messages.properties File</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_7.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Add</property>
+ </emphasis> button for adding new attribute to your resource file</para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis role="italic">
+ <property moreinfo="none">how_to_play</property>
+ </emphasis> for "name" and <emphasis role="italic">
+ <property moreinfo="none">Please pick a number between 0 and 100.</property>
+ </emphasis> for value</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>In such a way add the next properties:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[makeguess_button=Make Guess
+trayagain_button=Play Again?
+success_text=How cool.. You have guessed the number, {0} is correct!
+tryagain_smaller=Oops..incorrect guess. Please try a smaller number.
+tryagain_bigger=Oops..incorrect guess. Please try a bigger number.
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">File > Save</property>
+ </emphasis> from the menu bar</para>
+ </listitem>
+ </itemizedlist>
+ <para>Your .properties file should now look like follows:</para>
+ <figure float="0">
+ <title>Properties are Added</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_8.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para><emphasis>
+ <property moreinfo="none">Up</property></emphasis>
+ and <emphasis>
+ <property moreinfo="none">Down</property>
+ </emphasis> buttons allow you to move you attribute on the list. For delete the attribute, choose it and press <emphasis>
+ <property moreinfo="none">Delete</property></emphasis> button.</para>
+ <para>If you want to change a value or a name of your attribute, click on it and than on <emphasis>
+ <property moreinfo="none">Edit</property></emphasis> button.</para>
+ </section>
+
+ <section id="CreatingJavaBean">
+ <?dbhtml filename="CreatingJavaBean.html"?>
+ <title>Creating Java Bean</title>
+ <para>In this section you'll see how to create a Java bean that will hold business
+ logic of our application.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Right click <emphasis>
+ <property moreinfo="none">game folder</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">New > Class</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">NumberBean</property>
+ </emphasis> for bean name</para>
+ </listitem>
+ </itemizedlist>
+ <para>A java bean is created.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Declare the variable of your entered number:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[Integer userNumber;
+]]></programlisting>
+ <para>JBDS allows to quickly generate getters and setters for java bean.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Right click <emphasis>
+ <property moreinfo="none">NumberBean.java</property>
+ </emphasis> in Package Explorer</para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">Source > Generate Getters and Setters...</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Check <emphasis>
+ <property moreinfo="none">userNumber</property>
+ </emphasis> box and click <emphasis>
+ <property moreinfo="none">OK</property>
+ </emphasis>
+ <figure float="0">
+ <title>Generate Getters and Setters</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_9.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Add the declaration of the second variable</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[int randomNumber;
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>.. other bean methods:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[public NumberBean ()
+{
+ randomNumber = (int)(Math.random()*100);
+ System.out.println ( "Random number: "+randomNumber);
+ }
+ public String playagain ()
+ {
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpSession session =
+ (HttpSession) context.getExternalContext().getSession(false);
+ session.invalidate();
+ return "playagain";
+ }
+ public String checkGuess ()
+ {
+
+ // if guessed, return 'success' for navigation
+ if ( userNumber.intValue() == randomNumber )
+ {
+ return "success";
+ }
+else
+ {
+ FacesContext context = FacesContext.getCurrentInstance();
+ ResourceBundle bundle = ResourceBundle.getBundle("game.messages",
+ context.getViewRoot().getLocale());
+ String msg = "";
+ // if number bigger, get appropriate message
+ if ( userNumber.intValue() > randomNumber )
+ msg = bundle.getString("tryagain_smaller");
+ else // if number smaller, get appropriate message
+ msg = bundle.getString("tryagain_bigger");
+ // add message to be displayed on the page via <h:messages> tag
+ context.addMessage (null, new FacesMessage(msg));
+ // return 'tryagain' for navigation
+ return "tryagain";
+ }
+ }
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>And the import declarations:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpSession;
+import javax.faces.application.FacesMessage;
+import java.util.Locale;
+import java.util.ResourceBundle;
+]]></programlisting>
+ <para>The whole java bean should look as follows:</para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpSession;
+import javax.faces.application.FacesMessage;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+public class NumberBean
+{
+ Integer userNumber;
+ int randomNumber; // random number generated by application
+public Integer getUserNumber ()
+ {
+ return userNumber;
+ }
+ public void setUserNumber (Integer value)
+ {
+ this.userNumber = value;
+ }
+
+ // constructor, generates random number
+ public NumberBean ()
+ {
+ randomNumber = (int)(Math.random()*100);
+ System.out.println (
+ "Random number: " + randomNumber);
+ }
+
+ public String playagain ()
+ {
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpSession session =
+ (HttpSession) context.getExternalContext().getSession(false);
+ session.invalidate();
+ return "playagain";
+ }
+
+ // check if user guessed the number
+ public String checkGuess ()
+ {
+ // if guessed, return 'success' for navigation
+ if ( userNumber.intValue() == randomNumber )
+ {
+ return "success";
+ }
+ // incorrect guess
+ else
+ {
+ // get a reference to properties file to retrieve messages
+ FacesContext context = FacesContext.getCurrentInstance();
+ ResourceBundle bundle =
+ ResourceBundle.getBundle("game.messages",
+ context.getViewRoot().getLocale());
+ String msg = "";
+ // if number is bigger, get appropriate message
+ if ( userNumber.intValue() > randomNumber )
+ msg = bundle.getString("tryagain_smaller");
+ else // if number smaller, get appropriate message
+ msg = bundle.getString("tryagain_bigger");
+
+ // add message to be displayed on the page via <h:messages> tag
+ context.addMessage (null, new FacesMessage(msg));
+ // return 'tryagain' for navigation
+ return "tryagain";
+ }
+ }
+}
+]]></programlisting>
+ </section>
+
+ <section id="EditingFacesConfig">
+ <?dbhtml filename="EditingFacesConfig.html"?>
+ <title>Editing faces-config.xml File</title>
+ <para>In this section you know about faces-config.xml file.</para>
+ <para>This file holds two navigation rules and defines the backing bean used.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Open faces-config.xml file in a source mode</para>
+ </listitem>
+ <listitem>
+ <para>Add here one more navigation rule and a managed bean declarations that the
+ content of the file looks like this:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee
+xmlns:xi="http://www.w3.org/2001/XInclude"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2_.xsd">
+
+ <navigation-rule>
+ <from-view-id>*</from-view-id>
+ <navigation-case>
+ <from-outcome>playagain</from-outcome>
+ <to-view-id>/pages/inputnumber.jsp</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <from-view-id>/pages/inputnumber.jsp</from-view-id>
+ <navigation-case>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/pages/success.jsp</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <managed-bean>
+ <managed-bean-name>NumberBean</managed-bean-name>
+ <managed-bean-class>game.NumberBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+
+</faces-config>
+]]></programlisting>
+ <para>The first navigation rule states that from any page (<property moreinfo="none">*</property> stands for
+ any page) an outcome of playagain will take you to <emphasis>
+ <property moreinfo="none">/pages/inputnumber.jsp</property>
+ </emphasis>. Outcome values are returned from backing bean methods in this example. The
+ second navigation rule states that if you are at the page <emphasis>
+ <property moreinfo="none">/pages/inputnumber.jsp</property>
+ </emphasis>, and the outcome is success, then navigate to the <emphasis>
+ <property moreinfo="none">/pages/success.jsp</property>
+ </emphasis> page. </para>
+ </section>
+ <section id="EditingTheJSPViewFiles2">
+ <?dbhtml filename="EditingTheJSPViewFiles2.html"?>
+ <title>Editing the JSP View Files</title>
+ <para>Now, we will continue editing the JSP files for our two "views" using
+ Visual Page Editor.</para>
+ <section id="EditingInputjsp">
+ <?dbhtml filename="EditingInputjsp.html"?>
+ <title>Editing inputnumber.jsp page</title>
+ <para>First, let's dwell on how to edit inputnumber.jsp.</para>
+ <para>On this page we will have an output text component displaying a message, a text
+ field for user's number entering and a button for input submission.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Open inputnumber.jsp by double-clicking on the <emphasis>
+ <property moreinfo="none">/pages/inputnumber. jsp</property>
+ </emphasis> icon</para>
+ </listitem>
+ </itemizedlist>
+ <para>The Visual Page Editor will open in a screen split between source code along the
+ top and a WYSIWIG view along the bottom. You can see that some JSF code will be
+ already generated as we choose a template when creating the page.</para>
+ <para>At the beginning it's necessary to create a <emphasis role="bold">
+ <property moreinfo="none"><h:form></property>
+ </emphasis> component where all others components are put.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Place the mouse cursor inside <emphasis role="bold">
+ <property moreinfo="none"><f:view></property>
+ </emphasis><emphasis role="bold">
+ <property moreinfo="none"></f:view></property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Go to JBoss Tools Palette and expand JSF HTML folder by selecting
+ it</para>
+ </listitem>
+ <listitem>
+ <para>Click on <emphasis role="bold">
+ <property moreinfo="none"><h:form></property>
+ </emphasis> tag <figure float="0">
+ <title>Insert h:form</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_10.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ <listitem>
+ <para>In the dialog Insert Tag select <emphasis>
+ <property moreinfo="none">id</property>
+ </emphasis> and click on this line below the value header. A blinking cursor
+ will appear in a input text field inviting to enter a value of id <figure float="0">
+ <title>Define Id of Form</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_11.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">inputNumbers</property>
+ </emphasis> and click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>In source view you can see the declaration of a form.</para>
+ <figure float="0">
+ <title>Created Form</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_12.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>First let's declare the properties file in inputnumber.jsp page using the
+ loadBundle JSF tag.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Put this declaration on the top of a page, right after the first two
+ lines:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<f:loadBundle basename="game.messages" var="msg"/>
+]]></programlisting>
+ <para>As always JBDS provides code assist:</para>
+ <figure float="0">
+ <title>Code Assist</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_13.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Switch to Visual tab, so it could be possible to work with the editor
+ completely in its WYSIWYG mode</para>
+ </listitem>
+ <listitem>
+ <para>Click on <emphasis>
+ <property moreinfo="none">outputText</property>, </emphasis> drag the cursor over to the
+ editor, and drop it inside the blue box in the editor</para>
+ </listitem>
+
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">value</property>
+ </emphasis> and click on this line below "value"
+ header</para>
+ </listitem>
+ <listitem>
+ <para>Click <property moreinfo="none">...</property> button next to the value field</para>
+ </listitem>
+ </itemizedlist>
+ <para>JBDS will nicely propose you to choose within available values:</para>
+ <figure float="0">
+ <title>Choose Value</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_14.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Expand <emphasis>
+ <property moreinfo="none">Resource Bundles > msg</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">how_to_play</property>
+ </emphasis> value and click <emphasis>
+ <property moreinfo="none">Ok</property>. </emphasis> Then click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis>
+ <figure float="0">
+ <title>Selecting Value</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_15.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The text will appear on the page:</para>
+ <figure float="0">
+ <title>Created OutputText Component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_16.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Switch to Source mode and insert <emphasis role="bold">
+ <property moreinfo="none"><br/></property>
+ </emphasis> tag after <emphasis role="bold">
+ <property moreinfo="none"><h:outputText></property>
+ </emphasis> component to make a new line.</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Save</property>
+ </emphasis> button.</para>
+ </listitem>
+ <listitem>
+ <para>On the Palette click on <emphasis>
+ <property moreinfo="none">inputText</property>, </emphasis> drag the cursor over to the
+ editor, and drop it inside the editor after the text.</para>
+ </listitem>
+ <listitem>
+ <para>Switch to a Source mode and insert <emphasis role="bold">
+ <property moreinfo="none"><br/></property>
+ </emphasis> tag after <emphasis role="bold">
+ <property moreinfo="none"><h:outputText></property>
+ </emphasis> component to make a new line</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Save</property>
+ </emphasis> button</para>
+ </listitem>
+ <listitem>
+ <para>On the Palette click on <emphasis>
+ <property moreinfo="none">inputText</property>, </emphasis> drag the cursor over to the
+ editor, and drop it inside the editor after the text</para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">value</property>
+ </emphasis> and click on this line below "value"
+ header</para>
+ </listitem>
+ <listitem>
+ <para>Click <property moreinfo="none">...</property> button next to the value field</para>
+ </listitem>
+ <listitem>
+ <para>Expand <emphasis>
+ <property moreinfo="none">Managed Beans > NumberBean</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">userNumber</property>
+ </emphasis> value and click <emphasis>
+ <property moreinfo="none">Ok</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Switch <emphasis>
+ <property moreinfo="none">Advanced</property>
+ </emphasis> tab</para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">id</property>
+ </emphasis> and click on this line below "value"
+ header</para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">userNumber</property>
+ </emphasis> in text field</para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">required</property>
+ </emphasis> and click on this line below "value"
+ header</para>
+ </listitem>
+ <listitem>
+ <para>Click <property moreinfo="none">...</property> button next to the value field</para>
+ </listitem>
+ <listitem>
+ <para>Expand <emphasis>
+ <property moreinfo="none">Enumeration</property>
+ </emphasis> and select <emphasis>
+ <property moreinfo="none">true</property>
+ </emphasis> as a value</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Add "required" Attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_17.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Ok</property>, </emphasis> then click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Go to Source mode</para>
+ </listitem>
+ <listitem>
+ <para>Add the validation attribute to <emphasis role="bold">
+ <property moreinfo="none"><f:validateLongRange></property>
+ </emphasis> for user input validation</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<h:inputText id="userNumber" value="#{NumberBean.userNumber}" required="true">
+ <f:validateLongRange minimum="0" maximum="100"/>
+</h:inputText>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Save</property>
+ </emphasis> button</para>
+ </listitem>
+ <listitem>
+ <para>Again select <emphasis>
+ <property moreinfo="none">Visual</property>
+ </emphasis> mode</para>
+ </listitem>
+ <listitem>
+ <para>On the Palette, click on <emphasis>
+ <property moreinfo="none">commandButton</property>, </emphasis> drag the cursor over to
+ the editor, and drop it inside the editor after the inputText
+ component.</para>
+ </listitem>
+ <listitem>
+ <para>In the editing dialog select <emphasis>
+ <property moreinfo="none">value</property>
+ </emphasis> and click on this line below "value"
+ header</para>
+ </listitem>
+ <listitem>
+ <para>Click <property moreinfo="none">...</property> button next to the value field</para>
+ </listitem>
+ <listitem>
+ <para>Expand <emphasis>
+ <property moreinfo="none">Resource Bundles > msg</property>
+ </emphasis> and select <emphasis>
+ <property moreinfo="none">makeguess_button</property>
+ </emphasis> as a value</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Ok</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">action</property>
+ </emphasis> and click on this line below "value"
+ header</para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">NumberBean.checkGuess</property>
+ </emphasis> in text field</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>In Source mode add <emphasis role="bold">
+ <property moreinfo="none"><br/></property>
+ </emphasis> tags between <emphasis role="bold">
+ <property moreinfo="none"><outputText></property>
+ </emphasis>, <emphasis role="bold">
+ <property moreinfo="none"><inputText></property>
+ </emphasis> and <emphasis role="bold">
+ <property moreinfo="none"><commandButton></property>
+ </emphasis> components to place them on different lines</para>
+ </listitem>
+ </itemizedlist>
+ <para>inputnumber.jsp page should look like this:</para>
+ <programlisting format="linespecific" role="XML"><![CDATA[<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+<f:loadBundle basename="game.messages" var="msg"/>
+
+<html>
+ <f:view>
+ <h:form id="inputNumbers">
+ <h:outputText value="#{msg.how_to_play}"/>
+ <br/>
+ <h:messages style="color: blue"/>
+ <br/>
+ <h:inputText id="userNumber" value="#{NumberBean.userNumber}" required="true">
+ <f:validateLongRange minimum="0" maximum="100"/>
+ </h:inputText>
+ <br/><br/>
+ <h:commandButton value=
+ "#{msg.makeguess_button}" action="#{NumberBean.checkGuess}"/>
+ </h:form>
+ </f:view>
+</html>
+]]></programlisting>
+ </section>
+ <section id="EditingSuccessJsp">
+ <?dbhtml filename="EditingSuccessJsp.html"?>
+ <title>Editing success.jsp page</title>
+ <para>In the same way like inputnumber.jsp, edit success.jsp page. Its whole source
+ should be the next:</para>
+ <programlisting format="linespecific" role="XML"><![CDATA[<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+<f:loadBundle basename="game.messages" var="msg"/>
+
+<html>
+ <f:view>
+ <h:form id="result">
+ <h:outputFormat value="#{msg.success_text}">
+ <f:param value="#{NumberBean.userNumber}"/>
+ </h:outputFormat>
+ <br/><br/>
+ <h:commandButton value=
+ "#{msg.trayagain_button}" action="#{NumberBean.playagain}"/>
+ </h:form>
+ </f:view>
+</html>
+]]></programlisting>
+ <para>Again you can use code assist provided by JBDS when editing jsp page:</para>
+ <figure float="0">
+ <title>Code Assist for <f:param></title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_18.png" scale="80"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>This page, success.jsp, is shown if you correctly guessed the number. The
+ <emphasis role="bold">
+ <property moreinfo="none"><h:outputFormat></property>
+ </emphasis> tag will get the value of success_text from the properties file. The {0}
+ in success_text will be substituted for by the value of the value attribute within
+ the <emphasis role="bold">
+ <property moreinfo="none"><f:param></property>
+ </emphasis> tag during runtime.</para>
+ <para>At the end, you have a button which allows you to replay the game. The action
+ value references a backing bean method. In this case, the method only terminates the
+ current session so that when you are shown the first page, the input text box is
+ clear and a new random number is generated.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Switch to Preview mode to see how this page will look in a browser:</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Success.jsp in Preview Mode</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_19.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ </section>
+ <section id="CreatingIndexjsp">
+ <?dbhtml filename="CreatingIndexjsp.html"?>
+ <title>Creating index.jsp page</title>
+ <para>Now you know how to create index.jsp page.</para>
+ <para>The index.jsp page is the entry point of our application. It's just
+ forwarding to inputnumber.jsp page.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Right click <emphasis>
+ <property moreinfo="none">WebContent > New > JSP File</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Type <emphasis>
+ <property moreinfo="none">index</property>
+ </emphasis> for name field and choose <emphasis>
+ <property moreinfo="none">JSPRedirect</property>
+ </emphasis> as a template</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>The source for this page should be like the following:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific" role="XML"><![CDATA[<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+ <body>
+ <jsp:forward page="/pages/inputnumber.jsf" />
+ </body>
+</html>
+
+]]></programlisting>
+ <para>Note the <emphasis>.jsf</emphasis> extension of a page. It means that we trigger the
+ JSF controller servlet to handle the page according the servlet mapping in the
+ faces-config.xml file.</para>
+ </section>
+ <section id="RunningTheApplication33">
+ <?dbhtml filename="RunningTheApplication33.html"?>
+ <title>Running the Application</title>
+ <para>Finally, we have all the pieces needed to run the application.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Start up JBoss server by clicking on the <emphasis>
+ <property moreinfo="none">Start</property>
+ </emphasis> icon in JBoss Server view. (If JBoss is already running, stop it by
+ clicking on the red icon and then start it again. After the messages in the
+ Console tabbed view stop scrolling, JBoss is available)</para>
+ </listitem>
+ <listitem>
+ <para>Right-click on project <emphasis>
+ <property moreinfo="none">Run AS > Run on Server</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Play with the application by entering correct as well as incorrect
+ values</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>You are Asked to Enter a Number Between 0 and 100</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_20.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <figure float="0">
+ <title>Your Input is Validated and an Error Message is Displayed if Invalid Input was
+ Entered</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_21.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure float="0">
+ <title>After You Enter a Guess, the Application Tells You Whether a Smaller or a Larger
+ Number Should be Tried</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_22.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure float="0">
+ <title>Your Guess is Correct</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/rad_jsf_application/rad_jsf_application_23.png" scale="90"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+</chapter>
+
+
+
+<chapter id="gsg_faq" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/documentation/guides/GettingStartedGuide/en/modules/gsg_faq.xml" xreflabel="gsg_faq">
+ <?dbhtml filename="gsg_faq.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Java</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>FAQ</title>
+
+ <para>For more information on <property moreinfo="none">JBoss Developer Studio</property> features, refer to the
+ following FAQ to get the answers on the most "popular" questions.</para>
+
+ <section id="question_1">
+ <title>What should I do if Visual Page Editor does not start under Linux</title>
+
+ <para>Linux users may need to do the following to get the <property moreinfo="none">Visual Page
+ Editor</property> to work correctly on their machines.</para>
+
+ <orderedlist continuation="restarts" inheritnum="ignore">
+ <listitem>
+ <para>On Red Hat based Linux distributions install the xpLib.i386 package</para>
+ </listitem>
+ <listitem>
+ <para>Type</para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[ln -s libstdc++.so.5.0.7 libstdc++.so.5
+]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>and/or use</para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[yum install libXp
+]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>Open the JBDS perspective. If you see the Help view open, close it and restart
+ JBDS</para>
+ </listitem>
+ <listitem>
+ <para>If none of these work, do the following:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Clear the Eclipse log file,
+ <emphasis><workspace>\.metadata\.log</emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Start Eclipse with the -debug option:</para>
+ <programlisting format="linespecific" role="JAVA"><![CDATA[eclipse -debug
+]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>Post the Eclipse log file
+ (<emphasis><workspace>\.metadata\.log</emphasis>) on
+ the forums.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </orderedlist>
+ </section>
+
+ <section id="question_2">
+ <title>Do I need to have JBoss Server installed to run JBoss Developer Studio?</title>
+
+ <para>No. <property moreinfo="none">JBoss Developer Studio</property> already comes bundled with JBoss
+ Server. We bundle it together so that you don't need to download any additional
+ software and can test your application in a Web browser right away.</para>
+ <para>If you want to use a different JBoss server installation, after <property moreinfo="none">JBoss Developer Studio</property>
+ is installed open Servers View (select <emphasis><property moreinfo="none">Window > Show View
+ > Others > Server > Servers</property>),</emphasis> then
+ right click on this <emphasis>
+ <property moreinfo="none">view > New > Server</property>
+ </emphasis> and follow the wizards steps to point to another Jboss Server installation.</para>
+ <para><property moreinfo="none">JBoss Developer Studio</property> works with any servlet container, not just JBoss. For more
+ information on deployment, please see the Deploying Your Application section.</para>
+ </section>
+
+ <section id="question_3">
+ <title>I have an existing Seam 1.2.1 project. Can I migrate/import the
+ project to a JBDS Seam project?</title>
+
+ <para>We highly recommend you to create Seam 1.2.1 project using the <property moreinfo="none">JBDS</property>. In other case try
+ to do manually:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Create a Seam Web project to get the JBoss tools structure</para>
+ </listitem>
+ </itemizedlist>
+ <para>Then from your Seam 1.2.1 seam-gen project start doing the following:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Copy <property moreinfo="none">src</property> to <property moreinfo="none">src</property></para>
+ </listitem>
+ <listitem>
+ <para>Copy <property moreinfo="none">view</property> to <property moreinfo="none">Web content</property></para>
+ </listitem>
+ <listitem>
+ <para>Copy resources individual files to where they are in the seam web project
+ etc.</para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section id="questio_4">
+ <title>I have an existing Struts or JSF project. Can I open the project
+ in JBDS?</title>
+
+ <para>Yes. From main menu select <emphasis>
+ <property moreinfo="none">File > Import > Other > JSF Project (or Struts
+ Project)</property>
+ </emphasis> and follow wizards steps.</para>
+
+ </section>
+
+ <section id="question_5">
+ <title>Can I import a .war file?</title>
+
+ <para>Yes. Select <emphasis><property moreinfo="none">File > Import > Web > WAR
+ file</property>, </emphasis> then follow importing steps.</para>
+ </section>
+
+ <section id="question_6">
+ <title>Is it possible to increase the performance of Eclipse after
+ installing your product?</title>
+
+ <para><property moreinfo="none">JBoss Developer Studio</property> preconfigures eclipse via the eclipse.ini file to allocate
+ extra memory, but if you for some reason need more memory then by default, you can
+ manually make adjustments in this file. For example:</para>
+ <programlisting format="linespecific" role="XML">
+ <![CDATA[-vmargs -Xms128m -Xmx512m -XX:MaxPermSize=128m
+]]></programlisting>
+ </section>
+
+ <section id="question_7">
+ <title>How can I add my own tag library to the JBoss Tools
+ Palette?</title>
+
+ <para>See <ulink url="../../jsf/html_single/index.html#AddingCustomJSFTagsToTheRedHatPalette7433">Adding Tag
+ Libraries</ulink> in Visual Web Tools Guide.</para>
+ </section>
+
+ <section id="question_8">
+ <title>How to get Code Assist for Seam specific resources in an externally generated
+ project?</title>
+
+ <para>To get Code Assist for Seam specific resources in an externally generated project, you
+ should enable Seam features in Project Preferences. Right click an imported project and
+ navigate <emphasis>
+ <property moreinfo="none">Properties > Seam Settings</property>.</emphasis> Check <emphasis>
+ <property moreinfo="none">Seam support</property>
+ </emphasis> box to enable all available <ulink url="../../seam/html_single/index.html#project_pref">Seam
+ Settings</ulink>.</para>
+ </section>
+
+ <section id="question_9">
+ <title>How to import an example Seam project from jboss-eap directory?</title>
+
+ <para>To import an example Seam project from <emphasis>
+ <property moreinfo="none">jboss-eap</property>
+ </emphasis> into your working directory, you should perform the following steps:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Go to <emphasis>
+ <property moreinfo="none">New > Other > Java Project from Existing Buildfile</property>
+ </emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>Point to the <emphasis>
+ <property moreinfo="none">build.xml</property>
+ </emphasis> of any chosen project by pressing <emphasis>
+ <property moreinfo="none">Browse</property>
+ </emphasis> button</para>
+ </listitem>
+
+ <listitem>
+ <para>Hit <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis> to open the project</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>As these seam examples are non WTP projects, next you should enable Seam support for
+ them. To do that, right click the project and go to <emphasis>
+ <property moreinfo="none">Properties > Seam Settings</property>.</emphasis></para>
+ </section>
+
+</chapter>
+
+
+<chapter id="further_reading" xml:base="file:///home/ochikvina/WORK/for_compare/trunk/documentation/guides/GettingStartedGuide/en/modules/further_reading.xml" xreflabel="further_reading">
+ <?dbhtml filename="further_reading.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Deploy</keyword>
+ <keyword>Deployment</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Further Reading</title>
+
+ <para>
+ <emphasis role="bold">JSF Tools Reference Guide</emphasis>
+ <ulink url="../../jsf_tools_ref_guide/html_single/index.html">(html)</ulink>
+
+ </para>
+ <para> From this guide you'll discover all peculiarities of work at a JSF project. You'll
+ learn all shades that cover the process of project creation and take a closer look at the JSF
+ configuration file. Also you'll get to know managed beans and how to work with them and
+ find out, how to create and register a custom converter, custom validator and referenced beans
+ in a JSF project. </para>
+
+<itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">JSF Tools Tutorial</emphasis>
+ <ulink url="../../jsf_tools_tutorial/html_single/index.html">(html)</ulink>
+ </para>
+ <para> This tutorial will describe how to deal with classic/old style of JSF development and how
+ to create a simple JSF application using the JBoss Developer Studio. </para>
+ </listitem>
+
+ <listitem> <para>
+ <emphasis role="bold">Struts Tools Reference Guide</emphasis>
+ <ulink url="../../struts_tools_ref_guide/html_single/index.html">(html)</ulink>
+ </para>
+ <para> In Struts Tools Reference Guide you will learn how to create and work with a new struts
+ project. This guide also provides information about graphical editor for struts configuration
+ files, tiles files, and struts validation files. </para>
+ </listitem>
+
+<listitem>
+ <para>
+ <emphasis role="bold">Struts Tools Tutorial</emphasis>
+ <ulink url="../../struts_tools_tutorial/html_single/index.html">(html)</ulink>
+ </para>
+ <para> This tutorial will describe the classical style of Struts development, and will
+ step-by-step show you how to create a simple Struts application in JBoss Developer Studio.</para>
+</listitem>
+
+<listitem>
+ <para>
+ <emphasis role="bold">Seam Dev Tools Reference Guide</emphasis>
+ <ulink url="../../seam/html_single/index.html">(html)</ulink>
+ </para>
+ <para> This guide helps you to understand what Seam is and how to install Seam plug-in into
+ Eclipse. It tells you the necessary steps to start working with Seam Framework and assists in a
+ simple Seam Project creation. Also you will learn how to create and run the CRUD Database
+ Application with Seam as well as find out what Seam Editors Features and Seam Components are. </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Visual Web Tools Reference Guide</emphasis>
+ <ulink url="../../jsf/html_single/index.html">(html)</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">JBoss Server Manager Reference Guide</emphasis>
+ <ulink url="../../as/html_single/index.html">(html)</ulink>
+ </para>
+ <para> This guide covers the basics of working with the JBoss server manager. You will read how to
+ install runtimes and servers and quickly learn how to configure, start, stop the server and know
+ how deployment and archiving process. You will find out how to manage installed JBoss Servers
+ via JBoss AS Perspective. You will also read how to deploy modules onto the server. </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">jBPM Tools Reference Guide</emphasis>
+ <ulink url="../../jbpm/html_single/index.html">(html)</ulink>
+ </para>
+ <para>With jBPM Tools Reference Guide we'll help you to facilitate a cross-product
+ learning and know how you can speed your development using special editors and visual designers.
+ We'll also guide you through the steps on how to create a simple process and test it
+ within jBPM jPDL perspective.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Hibernate Tools Reference Guide</emphasis>
+ <ulink url="../../hibernatetools/html_single/index.html">(html)</ulink>
+ </para>
+ <para>Throughout this guide you will learn how to install and use Hibernate Tools bath via Ant and
+ through Eclipse. We'll supply you with the information on how to create mapping files,
+ configuration file as well as a file for controlling reverse engineering by using specific
+ wizards that Hibernate tooling provides. Also you will know about Code Generation and
+ peculiarities of work within Hibernate Console Perspective.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">ESB Editor Reference Guide</emphasis>
+ <ulink url="../../esb_ref_guide/html_single/index.html">(html)</ulink>
+ </para>
+ <para>This guide provides you with the information on ESB Editor which allows you to develop ESB
+ file.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">JBoss Portal Tools Reference Guide</emphasis>
+ <ulink url="../../jboss_portal_tools_ref_guide/html_single/index.html">(html)</ulink>
+ </para>
+ <para>The guide gives a detail look at how you can easily build a Portlet Web Application with
+ JBoss Tools and deploy it onto JBoss Portal.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">JBoss WS User Guide</emphasis>
+ <ulink url="../../ws_ref_guide/html_single/index.html">(html)</ulink>
+ </para>
+ <para>This guide gives you practical help on JBossWS usage.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Exadel Studio Migration Guide</emphasis>
+ <ulink url="../../Exadel-migration/html_single/index.html">(html)</ulink>
+ </para>
+ <para>This document is intended to help you to migrate an existing Exadel JSF or Struts projects
+ from Exadel Studio into JBoss Developer Studio. </para>
+ </listitem>
+
+</itemizedlist>
+
+
+
+</chapter></book>
Modified: branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/first_seam.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/first_seam.xml 2008-12-19 19:55:55 UTC (rev 12780)
+++ branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/first_seam.xml 2008-12-19 19:58:24 UTC (rev 12781)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<chapter id="first_seam" xreflabel="first_seam" revisionflag="added" role="updated">
+<chapter id="first_seam" xreflabel="first_seam" role="updated">
<?dbhtml filename="first_seam.html"?>
<chapterinfo>
<keywordset>
@@ -41,7 +41,7 @@
</section>
- <section id="create_deploy_seam">
+ <section id="create_deploy_seam" role="updated">
<title>Create and deploy Seam Web Project</title>
<para>Minimize the terminal window and run the <property>JBoss Developer Studio</property>
@@ -308,16 +308,27 @@
</section>
- <section id="workshop_code_overview">
+ <section id="workshop_code_overview" role="updated">
<title>Workshop Project Code Overview</title>
<para>Now let's examine the project and its structure. Go back to the Package Explorer view in
JBoss Developer Studio.</para>
- <para>It seems like it's not much for project but this shell application contains a login
+ <para>It seems like it's not much for project but this shell application contains a login
screen with default login logic, a menu template that can be further modified, and other
layout templates.</para>
+ <para>It's important to note that the business logic will reside in the <emphasis>
+ <property>src/hot</property>
+ </emphasis> folder, by default. And, the package naming conventions that were used in <property>New Seam
+ project wizard</property> could have been changed to something different from <emphasis>
+ <property>org.domain.workshop.session</property>.
+ </emphasis> Also, notice that there is a default <property>Authenticator. java</property>
+ file. This is where custom security logic can be added. Seam has a nice declarative security
+ model that we will explore in a bit more detail later on. The <emphasis>
+ <property>src/main</property>
+ </emphasis> folder is a model directory. It stores the project's JPA entity beans.</para>
+
<figure>
<title>Project Structure</title>
<mediaobject>
@@ -326,17 +337,8 @@
</imageobject>
</mediaobject>
</figure>
-
- <para>It’s important to note that the business logic will reside in the <emphasis>
- <property>src/action</property>
- </emphasis> folder, by default. And, the package naming conventions that were used in Seam
- project setup wizard could have been changed to something different from <emphasis>
- <property>org.domain.workshop.session</property>
- </emphasis>. Also, notice that there is a default <property>Authenticator. java</property>
- file. This is where custom security logic can be added. Seam has a nice declarative security
- model that we will explore in a bit more detail later on. The <emphasis>
- <property>src/model</property>
- </emphasis> folder will store the project’s JPA entity beans. The view tier of the
+
+ <para>The view tier of the
application is also important. Seam uses facelets and there is a built-in facelets GUI
editor that has some nice WYSIWYG and component drag/drop functionality. Try this out by
opening <property>home.xhtml</property> from <property>WebContent</property> folder.</para>
@@ -542,7 +544,7 @@
</section>
- <section id="declarative_security">
+ <section id="declarative_security" role="updated">
<title>Declarative Security</title>
<para>In this section you will see how it’s easy to secure the facelets and facelet components
@@ -712,13 +714,13 @@
</section>
- <section id="db_programming">
+ <section id="db_programming" role="updated">
<title>Database Programming</title>
<para>Now, it’s time to reverse engineer the workshop database into a fully functioning Seam
CRUD(Create Read Update Delete) application.</para>
- <section id="reverse_engineer_crud">
+ <section id="reverse_engineer_crud" role="updated">
<title>Reverse Engineer CRUD from a Running Database</title>
<para>In <property>JBoss Developer Studio</property>, switch to <property>Seam
Modified: branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/getting_started.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/getting_started.xml 2008-12-19 19:55:55 UTC (rev 12780)
+++ branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/getting_started.xml 2008-12-19 19:58:24 UTC (rev 12781)
@@ -34,7 +34,7 @@
guide we will show you how to install a 32-bit Sun JDK 5.0 on a Linux Platform and Microsoft
Windows Platform.</para>
- <section id="InstallJDK50onLinux">
+ <section id="InstallJDK50onLinux" role="updated">
<title>Installing and Configuring 32-bit Sun JDK 5.0 on Linux</title>
<para>To install 32-bit Sun JDK 5.0 on Linux and configure it, you should follow the next steps:</para>
<itemizedlist>
@@ -350,7 +350,7 @@
>JBoss.com</ulink></para>
</section>
- <section id="JBossToolsInstall">
+ <section id="JBossToolsInstall" role="updated">
<title>JBoss Tools Installation</title>
<para>Here, let's consider the installation of the <property>JBoss Tools</property>
modules.</para>
@@ -384,7 +384,7 @@
<para>Get Eclipse and Web Tools</para>
</listitem>
</itemizedlist>
- <para>The currant version of JBoss Tools (3.0.0.beta1) targets at Eclipse 3.4/Ganymede and WTP
+ <para>The currant version of JBoss Tools (3.0.0.CR1) targets at Eclipse 3.4/Ganymede and WTP
3.0.</para>
<tip>
Modified: branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/manage.xml
===================================================================
--- branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/manage.xml 2008-12-19 19:55:55 UTC (rev 12780)
+++ branches/jbosstools-3.0.0.CR1/documentation/guides/GettingStartedGuide/en/modules/manage.xml 2008-12-19 19:58:24 UTC (rev 12781)
@@ -122,7 +122,7 @@
<property>Stopped</property>
</emphasis> next to its name in the Status column.</para>
</section>
- <section id="ServerPreferences" role="updated">
+ <section id="ServerPreferences">
<?dbhtml filename="ServerPreferences.html"?>
<title>Server Container Preferences</title>
<para>You can control how <property>JBoss Developer Studio</property> interacts with server containers in the
15 years, 4 months