Author: snjeza
Date: 2009-02-15 18:46:07 -0500 (Sun, 15 Feb 2009)
New Revision: 13623
Modified:
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/Messages.java
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/internal/project/facet/JSFPortletFacetInstallPage.java
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/messages.properties
Log:
JBIDE-3635 Fix compatibility issues with Portletbridge distribution
Modified:
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/Messages.java
===================================================================
---
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/Messages.java 2009-02-13
20:28:00 UTC (rev 13622)
+++
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/Messages.java 2009-02-15
23:46:07 UTC (rev 13623)
@@ -40,14 +40,19 @@
public static String IPortletUIConstants_Specify_class_file_information;
public static String IPortletUIConstants_Title;
public static String IPortletUIConstants_Window_name;
+ public static String JSFPortletFacetInstallPage_Add_Change_Richfaces_Libraries;
public static String
JSFPortletFacetInstallPage_Add_JBoss_JSF_Portlet_capabilities_to_this_Web_Project;
public static String JSFPortletFacetInstallPage_Browse;
public static String JSFPortletFacetInstallPage_Deploy_jars;
public static String
JSFPortletFacetInstallPage_Invalid_Portletbridge_Runtime_directory;
+ public static String JSFPortletFacetInstallPage_Invalid_Richfaces_Runtime_directory;
public static String JSFPortletFacetInstallPage_JBoss_JSF_Portlet_Capabilities;
public static String JSFPortletFacetInstallPage_Portletbridge_Runtime;
public static String
JSFPortletFacetInstallPage_Portletbridge_Runtime_directory_is_required;
+ public static String JSFPortletFacetInstallPage_Richfaces_Capabilities;
+ public static String
JSFPortletFacetInstallPage_RichFaces_Runtime_directory_is_required;
public static String JSFPortletFacetInstallPage_Select_Portletbridge_Runtime;
+ public static String JSFPortletFacetInstallPage_Select_RichFaces_Runtime;
public static String PortletFacetInstallPage_Add;
public static String
PortletFacetInstallPage_Add_JBoss_Portlet_capabilities_to_this_Web_Project;
public static String PortletFacetInstallPage_Enable_implementation_library;
Modified:
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/internal/project/facet/JSFPortletFacetInstallPage.java
===================================================================
---
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/internal/project/facet/JSFPortletFacetInstallPage.java 2009-02-13
20:28:00 UTC (rev 13622)
+++
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/internal/project/facet/JSFPortletFacetInstallPage.java 2009-02-15
23:46:07 UTC (rev 13623)
@@ -2,7 +2,11 @@
import java.io.File;
import java.io.FilenameFilter;
+import java.util.Set;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
@@ -12,14 +16,27 @@
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog;
+import
org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper;
+import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.ui.AbstractFacetWizardPage;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.ServerCore;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerConstants;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
import org.jboss.tools.portlet.core.IPortletConstants;
+import org.jboss.tools.portlet.core.PortletCoreActivator;
import org.jboss.tools.portlet.ui.Messages;
import org.jboss.tools.portlet.ui.PortletUIActivator;
@@ -37,6 +54,19 @@
private DataModelSynchHelper synchHelper;
private Button folderButton;
private Button deployButton;
+ private Combo portletBridgeLibraryCombo;
+ private Combo userLibraries;
+ private String userLibraryName;
+ private Button add;
+ private String implementationLibrary;
+ private Button addRichFacesCapabilities;
+ private boolean hasSeamFacet;
+ private Button addRichFacesLibraries;
+ private Combo richFacesLibraryCombo;
+ private Text richfacesText;
+ private Button richfacesButton;
+ private String richfacesRuntime;
+ private boolean richFacesLibrariesSelected;
public JSFPortletFacetInstallPage() {
super("JSFPortletProjectConfigurationWizardPage"); //$NON-NLS-1$
@@ -54,6 +84,18 @@
portletbridgeRuntime = ""; //$NON-NLS-1$
jsfSection.put(IPortletConstants.PORTLET_BRIDGE_RUNTIME,
portletbridgeRuntime);
+
+ richfacesRuntime = ""; //$NON-NLS-1$
+ jsfSection.put(IPortletConstants.RICHFACES_RUNTIME,
+ richfacesRuntime);
+
+ implementationLibrary = IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE;
+ jsfSection.put(IPortletConstants.IMPLEMENTATION_LIBRARY, implementationLibrary);
+
+ richFacesLibrariesSelected = false;
+ jsfSection.put(IPortletConstants.RICHFACES_LIBRARIES_SELECTED,
richFacesLibrariesSelected);
+
+
} else {
deployJars = jsfSection.getBoolean(IPortletConstants.DEPLOY_JARS);
portletbridgeRuntime = jsfSection
@@ -63,6 +105,19 @@
jsfSection.put(IPortletConstants.PORTLET_BRIDGE_RUNTIME,
portletbridgeRuntime);
}
+ implementationLibrary = jsfSection.get(IPortletConstants.IMPLEMENTATION_LIBRARY);
+ if (implementationLibrary == null) {
+ implementationLibrary = IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE;
+ jsfSection.put(IPortletConstants.IMPLEMENTATION_LIBRARY, implementationLibrary);
+ }
+ richfacesRuntime = jsfSection
+ .get(IPortletConstants.RICHFACES_RUNTIME);
+ if (richfacesRuntime == null) {
+ richfacesRuntime = ""; //$NON-NLS-1$
+ jsfSection.put(IPortletConstants.RICHFACES_RUNTIME,
+ richfacesRuntime);
+ }
+ richFacesLibrariesSelected =
jsfSection.getBoolean(IPortletConstants.RICHFACES_LIBRARIES_SELECTED);
}
}
@@ -70,7 +125,7 @@
public void createControl(Composite parent) {
initializeDialogUnits(parent);
Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout(3, false));
+ composite.setLayout(new GridLayout(1, false));
synchHelper = new DataModelSynchHelper(model);
addFolderGroup(composite);
// createButton(composite);
@@ -97,12 +152,149 @@
}
private void addFolderGroup(Composite composite) {
- // folder
- Label folderLabel = new Label(composite, SWT.LEFT);
- folderLabel.setText(Messages.JSFPortletFacetInstallPage_Portletbridge_Runtime);
- folderLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
+ portletBridgeLibraryCombo = new Combo(composite, SWT.READ_ONLY);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ portletBridgeLibraryCombo.setLayoutData(gd);
+ portletBridgeLibraryCombo.addSelectionListener(new SelectionAdapter() {
- folderText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ boolean enabled = IPortletConstants.USER_LIBRARY
+ .equals(portletBridgeLibraryCombo.getText());
+ userLibraries.setEnabled(enabled);
+ add.setEnabled(enabled);
+
+ enabled =
IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE.equals(portletBridgeLibraryCombo.getText());
+ folderText.setEnabled(enabled);
+ folderButton.setEnabled(enabled);
+ model.setProperty(IPortletConstants.IMPLEMENTATION_LIBRARY,
+ portletBridgeLibraryCombo.getText());
+ model.setProperty(IPortletConstants.PORTLET_BRIDGE_RUNTIME,folderText.getText().trim());
+ model.setProperty(IPortletConstants.USER_LIBRARY_NAME,userLibraries.getText());
+ if
(IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE.equals(portletBridgeLibraryCombo.getText()))
{
+ richFacesLibraryCombo.removeAll();
+ richFacesLibraryCombo.add(IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE);
+ richFacesLibraryCombo.add(IPortletConstants.LIBRARIES_PROVIDED_BY_RICHFACES);
+ richFacesLibraryCombo.select(0);
+ } else {
+ richFacesLibraryCombo.removeAll();
+ richFacesLibraryCombo.add(IPortletConstants.LIBRARIES_PROVIDED_BY_RICHFACES);
+ richFacesLibraryCombo.select(0);
+ }
+ validatePage();
+ }
+
+ });
+
+ if (portletBridgeLibrariesExistOnServer()) {
+ portletBridgeLibraryCombo.add(IPortletConstants.LIBRARIES_PROVIDED_BY_SERVER_RUNTIME);
+ }
+ portletBridgeLibraryCombo.add(IPortletConstants.USER_LIBRARY);
+
+ addUserLibraryGroup(composite);
+
+ portletBridgeLibraryCombo.add(IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE);
+
+ addPortletBridgeGroup(composite);
+
+ portletBridgeLibraryCombo.setText(implementationLibrary);
+
+ synchHelper.synchCombo(portletBridgeLibraryCombo,
IPortletConstants.IMPLEMENTATION_LIBRARY, null);
+
+ Group richfacesGroup = new Group(composite, SWT.NONE);
+ richfacesGroup.setLayout(new GridLayout(2, false));
+ richfacesGroup.setText(Messages.JSFPortletFacetInstallPage_Richfaces_Capabilities);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ richfacesGroup.setLayoutData(gd);
+ /*
+ addRichFacesCapabilities= new Button(richfacesGroup,SWT.CHECK);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan=2;
+ addRichFacesCapabilities.setLayoutData(gd);
+ synchHelper.synchCheckbox(addRichFacesCapabilities,
IPortletConstants.RICHFACES_CAPABILITIES, null);
+
+ addRichFacesCapabilities.setText("Add Richfaces Capabilities");
+
+ if (hasSeamFacet) {
+ addRichFacesCapabilities.setSelection(true);
+ addRichFacesCapabilities.setEnabled(false);
+ }
+ */
+ addRichFacesLibraries= new Button(richfacesGroup,SWT.CHECK);
+ addRichFacesLibraries.setText(Messages.JSFPortletFacetInstallPage_Add_Change_Richfaces_Libraries);
+ synchHelper.synchCheckbox(addRichFacesLibraries,
IPortletConstants.RICHFACES_LIBRARIES_SELECTED, null);
+
+ addRichFacesLibraries.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ enableRichfacesLibraries();
+ }
+
+ });
+ richFacesLibraryCombo = new Combo(richfacesGroup, SWT.READ_ONLY);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan=2;
+ richFacesLibraryCombo.setLayoutData(gd);
+ richFacesLibraryCombo.add(IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE);
+ richFacesLibraryCombo.add(IPortletConstants.LIBRARIES_PROVIDED_BY_RICHFACES);
+ synchHelper.synchCombo(richFacesLibraryCombo,
IPortletConstants.RICHFACES_LIBRARIES_TYPE, null);
+ richFacesLibraryCombo.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ boolean enabled
=IPortletConstants.LIBRARIES_PROVIDED_BY_RICHFACES.equals(richFacesLibraryCombo.getText());
+ richfacesText.setEnabled(enabled);
+ richfacesButton.setEnabled(enabled);
+ validatePage();
+ }
+
+ });
+ addRichFaces(richfacesGroup);
+
+ addRichFacesLibraries.setSelection(richFacesLibrariesSelected);
+ enableRichfacesLibraries();
+ richFacesLibraryCombo.select(0);
+
+ validatePage();
+ }
+
+ private void addRichFaces(Composite parent) {
+ richfacesText = new Text(parent, SWT.SINGLE | SWT.BORDER);
+ richfacesText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ synchHelper.synchText(richfacesText,
+ IPortletConstants.RICHFACES_RUNTIME, null);
+
+ richfacesText.setText(richfacesRuntime);
+ richfacesText.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ validateRichFaces();
+ }
+
+ });
+
+ richfacesButton = new Button(parent, SWT.PUSH);
+ richfacesButton.setText(Messages.JSFPortletFacetInstallPage_Browse);
+ richfacesButton
+ .setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
+ richfacesButton.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ handleRichFacesButtonPressed();
+ }
+
+ });
+ }
+
+ private void addPortletBridgeGroup(Composite composite) {
+ GridData gd;
+ Group portletBridgeGroup = new Group(composite, SWT.NONE);
+ portletBridgeGroup.setText(Messages.JSFPortletFacetInstallPage_Portletbridge_Runtime);
+ portletBridgeGroup.setLayout(new GridLayout(2, false));
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ portletBridgeGroup.setLayoutData(gd);
+
+ folderText = new Text(portletBridgeGroup, SWT.SINGLE | SWT.BORDER);
folderText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
synchHelper.synchText(folderText,
IPortletConstants.PORTLET_BRIDGE_RUNTIME, null);
@@ -116,7 +308,7 @@
});
- folderButton = new Button(composite, SWT.PUSH);
+ folderButton = new Button(portletBridgeGroup, SWT.PUSH);
folderButton.setText(Messages.JSFPortletFacetInstallPage_Browse);
folderButton
.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
@@ -126,21 +318,152 @@
}
});
- validatePortletBridge();
}
- private void validatePortletBridge() {
+ private void addUserLibraryGroup(Composite composite) {
+ GridData gd;
+ Group userLibrariesGroup = new Group(composite, SWT.NONE);
+ userLibrariesGroup.setText(Messages.PortletFacetInstallPage_User_Library);
+ userLibrariesGroup.setLayout(new GridLayout(2, false));
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ userLibrariesGroup.setLayoutData(gd);
+ userLibraries = new Combo(userLibrariesGroup, SWT.READ_ONLY);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ userLibraries.setLayoutData(gd);
+ synchHelper.synchCombo(userLibraries, IPortletConstants.USER_LIBRARY_NAME, null);
+ setLibraryCombo();
+ add = new Button(userLibrariesGroup, SWT.PUSH);
+ add.setText(Messages.PortletFacetInstallPage_Add);
+ add.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+ WorkbenchPreferenceDialog dialog = WorkbenchPreferenceDialog
+ .createDialogOn(shell,
"org.eclipse.jdt.ui.preferences.UserLibraryPreferencePage"); //$NON-NLS-1$
+ if (dialog != null) {
+ dialog.open();
+ setLibraryCombo();
+ }
+ }
+
+ });
+ boolean enabled = IPortletConstants.USER_LIBRARY.equals(portletBridgeLibraryCombo
+ .getText());
+ userLibraries.setEnabled(enabled);
+ userLibraries.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ model.setProperty(IPortletConstants.USER_LIBRARY_NAME,
+ userLibraries
+ .getText());
+ userLibraryName = userLibraries.getText();
+ validatePage();
+ }
+ });
+ add.setEnabled(enabled);
+ }
+
+ private void setLibraryCombo() {
+ String[] libraryNames = JavaCore.getUserLibraryNames();
+ boolean exists = false;
+ for (int i = 0; i < libraryNames.length; i++) {
+ userLibraries.add(libraryNames[i]);
+ if (libraryNames[i].equals(userLibraryName)) {
+ exists = true;
+ }
+ }
+ if (exists) {
+ userLibraries.setText(userLibraryName);
+ } else {
+ userLibraries.select(0);
+ userLibraryName = userLibraries.getText();
+ }
+ validatePage();
+ }
+
+ private void validatePage() {
+ if (!validatePortletBridge()) {
+ return;
+ }
+ if (!validateRichFaces()) {
+ return;
+ }
+ if (portletBridgeLibraryCombo.getText().equals(IPortletConstants.USER_LIBRARY)
&& userLibraries.getText().trim().length() <= 0) {
+ setErrorMessage(Messages.PortletFacetInstallPage_You_have_to_choose_an_user_library);
+ setPageComplete(false);
+ } else {
+ setErrorMessage(null);
+ setPageComplete(true);
+ }
+
+ }
+
+ private boolean portletBridgeLibrariesExistOnServer() {
+ IFacetedProjectWorkingCopy fpwc = (IFacetedProjectWorkingCopy)
model.getProperty(IFacetDataModelProperties.FACETED_PROJECT_WORKING_COPY);
+ Set<IProjectFacetVersion> facets = fpwc.getProjectFacets();
+ hasSeamFacet = false;
+ for(IProjectFacetVersion facet:facets) {
+ IProjectFacet projectFacet = facet.getProjectFacet();
+ if ("jst.seam".equals(projectFacet.getId())) { //$NON-NLS-1$
+ hasSeamFacet = true;
+ break;
+ }
+ }
+
+ org.eclipse.wst.common.project.facet.core.runtime.IRuntime facetRuntime =
fpwc.getPrimaryRuntime();
+ IRuntime runtime = PortletCoreActivator.getRuntime(facetRuntime);
+ IJBossServerRuntime jbossRuntime =
(IJBossServerRuntime)runtime.loadAdapter(IJBossServerRuntime.class, new
NullProgressMonitor());
+ if (jbossRuntime != null) {
+ // JBoss Portal server
+ IPath jbossLocation = runtime.getLocation();
+ IPath configPath =
jbossLocation.append(IJBossServerConstants.SERVER).append(jbossRuntime.getJBossConfiguration());
+ File configFile = configPath.toFile();
+ if (hasPortletbridgeLibraries(new File(configFile,IPortletConstants.PORTLET_SAR_LIB)))
{
+ return true;
+ }
+ if (hasPortletbridgeLibraries(new
File(configFile,IPortletConstants.PORTLET_SAR_HA_LIB))) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean hasPortletbridgeLibraries(File file) {
+ if (file != null && file.isDirectory()) {
+ String[] list = file.list(new FilenameFilter() {
+
+ public boolean accept(File dir, String name) {
+ if ("portletbridge-api.jar".equals(name) || //$NON-NLS-1$
+ "portletbridge-impl.jar".equals(name)) { //$NON-NLS-1$
+ return true;
+ }
+ return false;
+ }
+
+ });
+ return list.length == 2;
+ }
+ return false;
+ }
+
+ private boolean validatePortletBridge() {
+ if
(!IPortletConstants.LIBRARIES_PROVIDED_BY_PORTLETBRIDGE.equals(portletBridgeLibraryCombo.getText()))
{
+ setErrorMessage(null);
+ setPageComplete(true);
+ return true;
+ }
String folderString = folderText.getText();
folderString = folderString.trim();
if (folderString.length() <= 0) {
setErrorMessage(Messages.JSFPortletFacetInstallPage_Portletbridge_Runtime_directory_is_required);
setPageComplete(false);
- return;
+ return false;
}
File folder = new File(folderString);
if (!folder.exists() || !folder.isDirectory()) {
setInvalidPortletbridgeRuntime();
- return;
+ return false;
}
String[] fileList = folder.list(new FilenameFilter() {
@@ -154,19 +477,71 @@
});
if (fileList.length < 2) {
setInvalidPortletbridgeRuntime();
- return;
+ return false;
}
portletbridgeRuntime = folderText.getText();
setErrorMessage(null);
setPageComplete(true);
+ return true;
}
+ private boolean validateRichFaces() {
+ if (richFacesLibraryCombo == null) {
+ return true;
+ }
+ if
(!IPortletConstants.LIBRARIES_PROVIDED_BY_RICHFACES.equals(richFacesLibraryCombo.getText()))
{
+ setErrorMessage(null);
+ setPageComplete(true);
+ return true;
+ }
+ String folderString = richfacesText.getText();
+ folderString = folderString.trim();
+ if (folderString.length() <= 0) {
+ setErrorMessage(Messages.JSFPortletFacetInstallPage_RichFaces_Runtime_directory_is_required);
+ setPageComplete(false);
+ return false;
+ }
+ File folder = new File(folderString);
+ if (!folder.exists() || !folder.isDirectory()) {
+ setInvalidRichfacesRuntime();
+ return false;
+ }
+ folder = new File(folder,"lib"); //$NON-NLS-1$
+ if (!folder.exists() || !folder.isDirectory()) {
+ setInvalidRichfacesRuntime();
+ return false;
+ }
+ String[] fileList = folder.list(new FilenameFilter() {
+
+ public boolean accept(File dir, String name) {
+ if (name.startsWith("richfaces") || name.endsWith(".jar")) {
//$NON-NLS-1$ //$NON-NLS-2$
+ return true;
+ }
+ return false;
+ }
+
+ });
+ if (fileList.length < 3) {
+ setInvalidRichfacesRuntime();
+ return false;
+ }
+ richfacesRuntime = richfacesText.getText();
+ setErrorMessage(null);
+ setPageComplete(true);
+ return true;
+ }
+
+ private void setInvalidRichfacesRuntime() {
+ setErrorMessage(Messages.JSFPortletFacetInstallPage_Invalid_Richfaces_Runtime_directory);
+ setPageComplete(false);
+ }
+
private void setInvalidPortletbridgeRuntime() {
setErrorMessage(Messages.JSFPortletFacetInstallPage_Invalid_Portletbridge_Runtime_directory);
setPageComplete(false);
}
- protected void handleFolderButtonPressed() {
+ private void handleFolderButtonPressed() {
String lastPath = folderText.getText();
DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.MULTI);
dialog.setText(Messages.JSFPortletFacetInstallPage_Select_Portletbridge_Runtime);
@@ -178,6 +553,19 @@
String newPath = dialog.getFilterPath();
folderText.setText(newPath);
}
+
+ private void handleRichFacesButtonPressed() {
+ String lastPath = richfacesText.getText();
+ DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.MULTI);
+ dialog.setText(Messages.JSFPortletFacetInstallPage_Select_RichFaces_Runtime);
+ dialog.setFilterPath(lastPath);
+ String res = dialog.open();
+ if (res == null) {
+ return;
+ }
+ String newPath = dialog.getFilterPath();
+ richfacesText.setText(newPath);
+ }
@Override
public void transferStateToConfig() {
@@ -188,6 +576,26 @@
}
jsfSection.put(IPortletConstants.PORTLET_BRIDGE_RUNTIME,
portletbridgeRuntime);
+ jsfSection.put(IPortletConstants.RICHFACES_RUNTIME,
+ richfacesRuntime);
+ jsfSection.put(IPortletConstants.IMPLEMENTATION_LIBRARY,
+ implementationLibrary);
+ jsfSection.put(IPortletConstants.RICHFACES_LIBRARIES_SELECTED,
+ richFacesLibrariesSelected);
+
}
+ private void enableRichfacesLibraries() {
+ boolean enabled = addRichFacesLibraries.getSelection();
+ richFacesLibraryCombo.setEnabled(enabled);
+ if (enabled) {
+ enabled
=IPortletConstants.LIBRARIES_PROVIDED_BY_RICHFACES.equals(richFacesLibraryCombo.getText());
+ richfacesText.setEnabled(enabled);
+ richfacesButton.setEnabled(enabled);
+ } else {
+ richfacesText.setEnabled(false);
+ richfacesButton.setEnabled(false);
+ }
+ }
+
}
Modified:
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/messages.properties
===================================================================
---
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/messages.properties 2009-02-13
20:28:00 UTC (rev 13622)
+++
trunk/portlet/plugins/org.jboss.tools.portlet.ui/src/org/jboss/tools/portlet/ui/messages.properties 2009-02-15
23:46:07 UTC (rev 13623)
@@ -24,14 +24,19 @@
IPortletUIConstants_Specify_class_file_information=Specify class file information
IPortletUIConstants_Title=Title:
IPortletUIConstants_Window_name=Window Name:
+JSFPortletFacetInstallPage_Add_Change_Richfaces_Libraries=Add/Change Richfaces Libraries
JSFPortletFacetInstallPage_Add_JBoss_JSF_Portlet_capabilities_to_this_Web_Project=Add
JBoss JSF Portlet capabilities to this Web Project
JSFPortletFacetInstallPage_Browse=Browse...
JSFPortletFacetInstallPage_Deploy_jars=Deploy jars to WEB-INF/lib
JSFPortletFacetInstallPage_Invalid_Portletbridge_Runtime_directory=Invalid Portletbridge
Runtime directory.
+JSFPortletFacetInstallPage_Invalid_Richfaces_Runtime_directory=Invalid Richfaces Runtime
directory.
JSFPortletFacetInstallPage_JBoss_JSF_Portlet_Capabilities=JBoss JSF Portlet Capabilities
JSFPortletFacetInstallPage_Portletbridge_Runtime=Portletbridge Runtime
JSFPortletFacetInstallPage_Portletbridge_Runtime_directory_is_required=Portletbridge
Runtime directory is required.
+JSFPortletFacetInstallPage_Richfaces_Capabilities=Richfaces Capabilities
+JSFPortletFacetInstallPage_RichFaces_Runtime_directory_is_required=RichFaces Runtime
directory is required.
JSFPortletFacetInstallPage_Select_Portletbridge_Runtime=Select Portletbridge Runtime
+JSFPortletFacetInstallPage_Select_RichFaces_Runtime=Select RichFaces Runtime
PortletFacetInstallPage_Add=Add...
PortletFacetInstallPage_Add_JBoss_Portlet_capabilities_to_this_Web_Project=Add JBoss
Portlet capabilities to this Web Project
PortletFacetInstallPage_Enable_implementation_library=Enable implementation library