[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards ...
Robert Stryker
rawblem at gmail.com
Fri Aug 25 22:33:14 EDT 2006
User: rawb
Date: 06/08/25 22:33:14
Added: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards
ProjectRuntimeWizardFragment.java
AbstractJBossRuntimeWizardFragment.java
JBoss40RuntimeWizardFragment.java
JBoss32RuntimeWizardFragment.java
AbstractJBossServerWizardFragment.java
Removed: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards
AbstractJBossWizardFragment.java
JBoss40WizardFragment.java
JBoss32WizardFragment.java
Log:
Added infrastructure for facet runtime support
Revision Changes Path
1.1 date: 2006/08/26 02:33:14; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/ProjectRuntimeWizardFragment.java
Index: ProjectRuntimeWizardFragment.java
===================================================================
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.ide.eclipse.as.ui.wizards;
import java.util.ArrayList;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.IVMInstallType;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.window.Window;
import org.eclipse.jst.server.ui.internal.Messages;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.TaskModel;
import org.eclipse.wst.server.core.internal.RuntimeWorkingCopy;
import org.eclipse.wst.server.ui.internal.wizard.ClosableWizardDialog;
import org.eclipse.wst.server.ui.internal.wizard.NewServerWizard;
import org.eclipse.wst.server.ui.wizard.IWizardHandle;
import org.eclipse.wst.server.ui.wizard.WizardFragment;
import org.jboss.ide.eclipse.as.core.JBossServerCore;
import org.jboss.ide.eclipse.as.core.server.JBossServer;
import org.jboss.ide.eclipse.as.core.server.runtime.JBossProjectRuntime;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
public class ProjectRuntimeWizardFragment extends WizardFragment {
protected DynWebProjectRuntimeComposite comp;
public ProjectRuntimeWizardFragment() {
}
public boolean hasComposite() {
return true;
}
public Composite createComposite(Composite parent, IWizardHandle wizard) {
comp = new DynWebProjectRuntimeComposite(parent, wizard);
return comp;
}
public boolean isComplete() {
IRuntimeWorkingCopy runtime = (IRuntimeWorkingCopy) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
if (runtime == null)
return false;
IStatus status = runtime.validate(null);
return (status != null && status.isOK());
}
public void enter() {
if (comp != null) {
IRuntimeWorkingCopy runtime = (IRuntimeWorkingCopy) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
comp.setRuntime(runtime);
}
}
protected class DynWebProjectRuntimeComposite extends Composite {
protected IRuntimeWorkingCopy runtimeWC;
protected JBossProjectRuntime runtime;
protected IWizardHandle wizard;
protected Group runtimeGroup, serverGroup;
protected Combo serverCombo, jreCombo;
protected Text projRuntimeName, runtimeName, serverName;
protected Text homeText, jreText, configName;
protected String[] jreNames;
protected ArrayList installedJREs;
protected JBossServer[] jbservers;
private Button newServerButton;
private boolean repopulateRequired = false;
/**
* GenericRuntimeComposite constructor comment.
*/
protected DynWebProjectRuntimeComposite(Composite parent, IWizardHandle wizard) {
super(parent, SWT.NONE);
this.wizard = wizard;
wizard.setTitle("Create JBoss Project Runtime");
wizard.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.IMG_JBOSS));
createControl();
}
protected void setRuntime(IRuntimeWorkingCopy newRuntime) {
if (newRuntime == null) {
runtimeWC = null;
runtime = null;
} else {
runtimeWC = newRuntime;
runtime = (JBossProjectRuntime) newRuntime.getAdapter(JBossProjectRuntime.class);
}
init();
validate();
}
/**
* Provide a wizard page to change the root directory.
*/
protected void createControl() {
FillLayout layout = new FillLayout();
setLayout(layout);
setLayoutData(new GridData(GridData.FILL_BOTH));
Composite main = new Composite(this, SWT.BORDER);
main.setLayout(new FormLayout());
Label serverLabel = new Label(main, SWT.NONE);
serverLabel.setText("Server: ");
FormData serverLabelData = new FormData();
serverLabelData.left = new FormAttachment(0,5);
serverLabelData.top = new FormAttachment(0,7);
serverLabel.setLayoutData(serverLabelData);
serverCombo = new Combo(main, SWT.READ_ONLY);
FormData serverComboData = new FormData();
serverComboData.top = new FormAttachment(0,5);
serverComboData.right = new FormAttachment(70,5);
serverComboData.left = new FormAttachment(serverLabel, 5);
serverCombo.setLayoutData(serverComboData);
newServerButton = new Button(main, SWT.NONE);
newServerButton.setText("New Server...");
FormData newServerButtonData = new FormData();
newServerButtonData.top = new FormAttachment(0,5);
newServerButtonData.left = new FormAttachment(serverCombo, 5);
newServerButtonData.right = new FormAttachment(100, -5);
newServerButton.setLayoutData(newServerButtonData);
repopulateServerCombo();
createRuntimeGroup(main);
createServerGroup(main);
addListeners();
}
protected void createRuntimeGroup(Composite main) {
runtimeGroup = new Group(main, SWT.NONE);
runtimeGroup.setText("Runtime Information");
FormData runtimeGroupData = new FormData();
runtimeGroupData.top = new FormAttachment(serverCombo, 5);
runtimeGroupData.left = new FormAttachment(0,5);
runtimeGroupData.right = new FormAttachment(100,-5);
runtimeGroup.setLayoutData(runtimeGroupData);
runtimeGroup.setLayout(new FormLayout());
// Name
Label runtimeNameLabel = new Label(runtimeGroup, SWT.NONE);
runtimeNameLabel.setText("Runtime Name: ");
FormData runtimeNameLabelData = new FormData();
runtimeNameLabelData.left = new FormAttachment(0,5);
runtimeNameLabelData.top = new FormAttachment(0,7);
runtimeNameLabel.setLayoutData(runtimeNameLabelData);
runtimeName = new Text(runtimeGroup, SWT.BORDER);
FormData runtimeNameData = new FormData();
runtimeNameData.left = new FormAttachment(30,5);
runtimeNameData.top = new FormAttachment(0,5);
runtimeNameData.right = new FormAttachment(100, -5);
runtimeName.setLayoutData(runtimeNameData);
runtimeName.setEditable(false);
// Home
Label homeLabel = new Label(runtimeGroup, SWT.NONE);
homeLabel.setText("Home Directory: ");
FormData homeLabelData = new FormData();
homeLabelData.left = new FormAttachment(0,5);
homeLabelData.top = new FormAttachment(runtimeName,5);
homeLabel.setLayoutData(homeLabelData);
homeText = new Text(runtimeGroup, SWT.BORDER);
FormData homeTextData = new FormData();
homeTextData.left = new FormAttachment(30,5);
homeTextData.top = new FormAttachment(runtimeName,5);
homeTextData.right = new FormAttachment(100, -5);
homeText.setLayoutData(homeTextData);
homeText.setEditable(false);
// JRE
Label jreLabel = new Label(runtimeGroup, SWT.NONE);
jreLabel.setText("JRE: ");
FormData jreLabelData = new FormData();
jreLabelData.left = new FormAttachment(0,5);
jreLabelData.top = new FormAttachment(homeText,5);
jreLabel.setLayoutData(jreLabelData);
jreText = new Text(runtimeGroup, SWT.BORDER);
FormData jreTextData = new FormData();
jreTextData.left = new FormAttachment(30,5);
jreTextData.top = new FormAttachment(homeText,5);
jreTextData.right = new FormAttachment(100, -5);
jreText.setLayoutData(jreTextData);
jreText.setEditable(false);
}
protected void createServerGroup(Composite main) {
serverGroup = new Group(main, SWT.NONE);
serverGroup.setText("Server Information");
FormData serverGroupData = new FormData();
serverGroupData.top = new FormAttachment(runtimeGroup, 5);
serverGroupData.left = new FormAttachment(0,5);
serverGroupData.right = new FormAttachment(100,-5);
serverGroup.setLayoutData(serverGroupData);
serverGroup.setLayout(new FormLayout());
// Name
Label serverNameLabel = new Label(serverGroup, SWT.NONE);
serverNameLabel.setText("Server Name: ");
FormData serverNameLabelData = new FormData();
serverNameLabelData.left = new FormAttachment(0,5);
serverNameLabelData.top = new FormAttachment(0,5);
serverNameLabel.setLayoutData(serverNameLabelData);
serverName = new Text(serverGroup, SWT.BORDER);
FormData serverNameData = new FormData();
serverNameData.left = new FormAttachment(30,5);
serverNameData.top = new FormAttachment(0,5);
serverNameData.right = new FormAttachment(100, -5);
serverName.setLayoutData(serverNameData);
serverName.setEditable(false);
// Configuration
Label configLabel = new Label(serverGroup, SWT.NONE);
configLabel.setText("Server Configuration: ");
FormData configLabelData = new FormData();
configLabelData.left = new FormAttachment(0,5);
configLabelData.top = new FormAttachment(serverName,5);
configLabel.setLayoutData(configLabelData);
configName = new Text(serverGroup, SWT.BORDER);
FormData configNameData = new FormData();
configNameData.left = new FormAttachment(30,5);
configNameData.top = new FormAttachment(serverName,5);
configNameData.right = new FormAttachment(100, -5);
configName.setLayoutData(configNameData);
configName.setEditable(false);
}
protected void addListeners() {
serverCombo.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
serverSelectionChanged();
detailsChanged();
}
});
newServerButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
NewServerWizard wizard = null;
wizard = new NewServerWizard();
ClosableWizardDialog dialog = new ClosableWizardDialog(new Shell(), wizard);
int result = dialog.open();
if( result == Window.OK) {
int currentItems = serverCombo.getItems().length;
int jbossServers = JBossServerCore.getAllJBossServers().length;
if( jbossServers == currentItems + 1 ) {
repopulateServerCombo();
} else {
repopulateRequired = true;
}
}
}
});
}
protected void detailsChanged() {
JBossServer jbs = getSelectedServer();
if( jbs != null ) {
//runtimeWC.setLocation(path)
runtimeWC.setLocation(new Path(jbs.getAttributeHelper().getConfigurationPath()));
((RuntimeWorkingCopy)runtimeWC).setAttribute(JBossProjectRuntime.SERVER_ID, jbs.getServer().getId());
}
// alert the wizard to check again
wizard.setMessage(null, IMessageProvider.NONE);
}
protected void repopulateServerCombo() {
jbservers = JBossServerCore.getAllJBossServers();
String[] jbserverNames = new String[jbservers.length];
for( int i = 0; i < jbservers.length; i++ ) {
jbserverNames[i] = jbservers[i].getServer().getName();
}
serverCombo.setItems(jbserverNames);
}
protected void serverSelectionChanged() {
JBossServer selected = getSelectedServer();
if( selected != null ) {
IServer server = selected.getServer();
IRuntime runtime = server.getRuntime();
configName.setText(selected.getAttributeHelper().getJbossConfiguration());
serverName.setText(server.getName());
jreText.setText(selected.getJBossRuntime().getVM().getName());
homeText.setText(runtime.getLocation().toOSString());
runtimeName.setText(runtime.getName());
}
if( repopulateRequired ) {
repopulateRequired = false;
repopulateServerCombo();
}
}
public JBossServer getSelectedServer() {
int index = serverCombo.getSelectionIndex();
if( index != -1 ) {
String name = serverCombo.getItem(index);
for( int i = 0; i < jbservers.length; i++ ) {
if( jbservers[i].getServer().getName().equals(name)) {
return jbservers[i];
}
}
}
return null;
}
protected void updateJREs() {
// get all installed JVMs
installedJREs = new ArrayList();
IVMInstallType[] vmInstallTypes = JavaRuntime.getVMInstallTypes();
int size = vmInstallTypes.length;
for (int i = 0; i < size; i++) {
IVMInstall[] vmInstalls = vmInstallTypes[i].getVMInstalls();
int size2 = vmInstalls.length;
for (int j = 0; j < size2; j++) {
installedJREs.add(vmInstalls[j]);
}
}
// get names
size = installedJREs.size();
jreNames = new String[size+1];
jreNames[0] = Messages.runtimeTypeDefaultJRE;
for (int i = 0; i < size; i++) {
IVMInstall vmInstall = (IVMInstall) installedJREs.get(i);
jreNames[i+1] = vmInstall.getName();
}
}
protected void init() {
}
protected void validate() {
}
}
}
1.1 date: 2006/08/26 02:33:14; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/AbstractJBossRuntimeWizardFragment.java
Index: AbstractJBossRuntimeWizardFragment.java
===================================================================
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.ide.eclipse.as.ui.wizards;
import java.io.File;
import java.util.ArrayList;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.IVMInstallType;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.preference.IPreferenceNode;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.preference.PreferenceManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.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.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
import org.eclipse.wst.server.core.ServerCore;
import org.eclipse.wst.server.core.TaskModel;
import org.eclipse.wst.server.core.internal.RuntimeWorkingCopy;
import org.eclipse.wst.server.ui.wizard.IWizardHandle;
import org.eclipse.wst.server.ui.wizard.WizardFragment;
import org.jboss.ide.eclipse.as.core.server.runtime.JBossServerRuntime;
import org.jboss.ide.eclipse.as.ui.Messages;
/**
* @author Stryker
*/
public abstract class AbstractJBossRuntimeWizardFragment extends WizardFragment {
private final static int NAME_CHANGED = 1;
private final static int HOME_CHANGED = 2;
private final static int JRE_CHANGED = 3;
private final static int CONFIG_CHANGED = 4;
private final static int SEVERITY_ALL = 1;
private final static int SEVERITY_MAJOR = 2;
private IWizardHandle handle;
private Label nameLabel, homeDirLabel, installedJRELabel;
private Text nameText, homeDirText;
private Combo jreCombo;
private Button homeDirButton, jreButton;
private Composite nameComposite, homeDirComposite, jreComposite;
private String name, homeDir;
// jre fields
protected ArrayList installedJREs;
protected String[] jreNames;
protected int defaultVMIndex;
private IVMInstall selectedVM;
public Composite createComposite(Composite parent, IWizardHandle handle)
{
this.handle = handle;
Composite main = new Composite(parent, SWT.NONE);
main.setLayout(new FormLayout());
updateJREs();
createNameComposite(main);
createHomeComposite(main);
createJREComposite(main);
// make modifications to parent
handle.setTitle(Messages.createWizardTitle);
handle.setDescription(Messages.createWizardDescription);
handle.setImageDescriptor (getImageDescriptor());
return main;
}
private void createNameComposite(Composite main) {
// Create our name composite
nameComposite = new Composite(main, SWT.NONE);
FormData cData = new FormData();
cData.left = new FormAttachment(0,5);
cData.right = new FormAttachment(100,-5);
cData.top = new FormAttachment(0, 10);
nameComposite.setLayoutData(cData);
nameComposite.setLayout(new FormLayout());
// create internal widgets
nameLabel = new Label(nameComposite, SWT.None);
nameLabel.setText(Messages.wizardFragmentNameLabel);
nameText = new Text(nameComposite, SWT.BORDER);
nameText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
updatePage(NAME_CHANGED);
}
});
// organize widgets inside composite
FormData nameLabelData = new FormData();
nameLabelData.left = new FormAttachment(0,0);
nameLabel.setLayoutData(nameLabelData);
FormData nameTextData = new FormData();
nameTextData.left = new FormAttachment(0, 5);
nameTextData.right = new FormAttachment(100, -5);
nameTextData.top = new FormAttachment(nameLabel, 5);
nameText.setLayoutData(nameTextData);
}
private void createHomeComposite(Composite main) {
// Create our composite
homeDirComposite = new Composite(main, SWT.NONE);
FormData cData = new FormData();
cData.left = new FormAttachment(0,5);
cData.right = new FormAttachment(100,-5);
cData.top = new FormAttachment(nameComposite, 10);
homeDirComposite.setLayoutData(cData);
homeDirComposite.setLayout(new FormLayout());
// Create Internal Widgets
homeDirLabel = new Label(homeDirComposite, SWT.NONE);
homeDirLabel.setText(Messages.wizardFragmentHomeDirLabel);
homeDirText = new Text(homeDirComposite, SWT.BORDER);
homeDirButton = new Button(homeDirComposite, SWT.NONE);
homeDirButton.setText(Messages.browse);
// Add listeners
homeDirText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
updatePage(HOME_CHANGED);
}
});
homeDirButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
browseHomeDirClicked();
}
public void widgetSelected(SelectionEvent e) {
browseHomeDirClicked();
}
});
// Set Layout Data
FormData labelData = new FormData();
FormData textData = new FormData();
FormData buttonData = new FormData();
labelData.left = new FormAttachment(0,0);
homeDirLabel.setLayoutData(labelData);
textData.left = new FormAttachment(0, 5);
textData.right = new FormAttachment(homeDirButton, -5);
textData.top = new FormAttachment(homeDirLabel, 5);
homeDirText.setLayoutData(textData);
buttonData.top = new FormAttachment(homeDirLabel, 5);
buttonData.right = new FormAttachment(100, 0);
homeDirButton.setLayoutData(buttonData);
}
private void createJREComposite(Composite main) {
// Create our composite
jreComposite = new Composite(main, SWT.NONE);
FormData cData = new FormData();
cData.left = new FormAttachment(0,5);
cData.right = new FormAttachment(100,-5);
cData.top = new FormAttachment(homeDirComposite, 10);
jreComposite.setLayoutData(cData);
jreComposite.setLayout(new FormLayout());
// Create Internal Widgets
installedJRELabel = new Label(jreComposite, SWT.NONE);
installedJRELabel.setText(Messages.wizardFragmentJRELabel);
jreCombo = new Combo(jreComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
jreCombo.setItems(jreNames);
jreCombo.select(defaultVMIndex);
jreButton = new Button(jreComposite, SWT.NONE);
jreButton.setText(Messages.installedJREs);
// Add action listeners
jreButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String currentVM = jreCombo.getText();
if (showPreferencePage()) {
updateJREs();
jreCombo.setItems(jreNames);
jreCombo.setText(currentVM);
if (jreCombo.getSelectionIndex() == -1)
jreCombo.select(defaultVMIndex);
}
}
});
jreCombo.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
updatePage(CONFIG_CHANGED);
}
public void widgetSelected(SelectionEvent e) {
updatePage(CONFIG_CHANGED);
}
} );
// Set Layout Data
FormData labelData = new FormData();
FormData comboData = new FormData();
FormData buttonData = new FormData();
labelData.left = new FormAttachment(0,0);
installedJRELabel.setLayoutData(labelData);
comboData.left = new FormAttachment(0, 5);
comboData.right = new FormAttachment(jreButton, -5);
comboData.top = new FormAttachment(installedJRELabel, 5);
jreCombo.setLayoutData(comboData);
buttonData.top = new FormAttachment(installedJRELabel, 5);
buttonData.right = new FormAttachment(100, 0);
jreButton.setLayoutData(buttonData);
}
private void updatePage(int changed) {
switch( changed ) {
case NAME_CHANGED:
updateErrorMessage(SEVERITY_MAJOR);
break;
case HOME_CHANGED:
updateErrorMessage(SEVERITY_MAJOR);
break;
case JRE_CHANGED:
int sel = jreCombo.getSelectionIndex();
selectedVM = (IVMInstall) installedJREs.get(sel);
break;
default:
break;
}
}
private void updateErrorMessage(int severity) {
String error = getErrorString(severity);
if( error == null ) {
handle.setMessage(null, IMessageProvider.NONE);
return;
}
handle.setMessage(error, IMessageProvider.ERROR);
}
private String getErrorString(int severity) {
if( getRuntime(nameText.getText()) != null ) {
return Messages.serverNameInUse;
}
if ( homeDirText.getText() != "" && !new File(homeDirText.getText()).exists()) {
return Messages.invalidDirectory;
}
if( severity == SEVERITY_MAJOR ) return null;
// now give minor warnings
if( nameText.getText().equals(""))
return Messages.nameTextBlank;
if( homeDirText.getText().equals(""))
return Messages.homeDirBlank;
return null;
}
private void browseHomeDirClicked() {
File file = new File(homeDirText.getText());
if (! file.exists()) {
file = null;
}
File directory = getDirectory(file, homeDirComposite.getShell());
if (directory == null) {
return;
}
homeDirText.setText(directory.getAbsolutePath());
}
protected File getDirectory(File startingDirectory, Shell shell) {
DirectoryDialog fileDialog = new DirectoryDialog(shell, SWT.OPEN);
if (startingDirectory != null) {
fileDialog.setFilterPath(startingDirectory.getPath());
}
String dir = fileDialog.open();
if (dir != null) {
dir = dir.trim();
if (dir.length() > 0) {
return new File(dir);
}
}
return null;
}
// Other
protected boolean showPreferencePage() {
PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();
IPreferenceNode node = manager.find("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage").findSubNode("org.eclipse.jdt.debug.ui.preferences.VMPreferencePage");
PreferenceManager manager2 = new PreferenceManager();
manager2.addToRoot(node);
final PreferenceDialog dialog = new PreferenceDialog(jreButton.getShell(), manager2);
final boolean[] result = new boolean[] { false };
BusyIndicator.showWhile(jreButton.getDisplay(), new Runnable() {
public void run() {
dialog.create();
if (dialog.open() == Window.OK)
result[0] = true;
}
});
return result[0];
}
// JRE methods
protected void updateJREs() {
// get all installed JVMs
installedJREs = new ArrayList();
IVMInstallType[] vmInstallTypes = JavaRuntime.getVMInstallTypes();
int size = vmInstallTypes.length;
for (int i = 0; i < size; i++) {
IVMInstall[] vmInstalls = vmInstallTypes[i].getVMInstalls();
int size2 = vmInstalls.length;
for (int j = 0; j < size2; j++) {
installedJREs.add(vmInstalls[j]);
}
}
// get names
size = installedJREs.size();
jreNames = new String[size];
for (int i = 0; i < size; i++) {
IVMInstall vmInstall = (IVMInstall) installedJREs.get(i);
jreNames[i] = vmInstall.getName();
}
selectedVM = JavaRuntime.getDefaultVMInstall();
defaultVMIndex = installedJREs.indexOf(selectedVM);
}
// WST API methods
public void enter() {
}
public void exit() {
name = nameText.getText();
homeDir = homeDirText.getText();
IRuntime r = (IRuntime) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
IRuntimeWorkingCopy runtimeWC;
if( r instanceof IRuntimeWorkingCopy ) {
runtimeWC = (IRuntimeWorkingCopy)r;
} else {
runtimeWC = r.createWorkingCopy();
}
runtimeWC.setName(name);
runtimeWC.setLocation(new Path(homeDir));
((RuntimeWorkingCopy)runtimeWC).setAttribute(JBossServerRuntime.PROPERTY_VM_ID, selectedVM.getId());
((RuntimeWorkingCopy)runtimeWC).setAttribute(JBossServerRuntime.PROPERTY_VM_TYPE_ID, selectedVM.getVMInstallType().getId());
getTaskModel().putObject(TaskModel.TASK_RUNTIME, runtimeWC);
// JBossServerRuntime runtime = (JBossServerRuntime)runtimeWC.loadAdapter(JBossServerRuntime.class, new NullProgressMonitor());
// runtime.setVMInstall(selectedVM);
}
public void performFinish(IProgressMonitor monitor) throws CoreException {
IRuntime r = (IRuntime) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
IRuntimeWorkingCopy runtimeWC = r.createWorkingCopy();
runtimeWC.setName(name);
runtimeWC.setLocation(new Path(homeDir));
IRuntime saved = runtimeWC.save(false, new NullProgressMonitor());
getTaskModel().putObject(TaskModel.TASK_RUNTIME, saved);
JBossServerRuntime runtime = (JBossServerRuntime)saved.loadAdapter(JBossServerRuntime.class, new NullProgressMonitor());
runtime.setVMInstall(selectedVM);
}
public boolean isComplete() {
String s = getErrorString(SEVERITY_ALL);
return s == null ? true : false;
}
protected abstract ImageDescriptor getImageDescriptor();
public boolean hasComposite() {
return true;
}
private IRuntime getRuntime(String runtimeName) {
IRuntime[] runtimes = ServerCore.getRuntimes();
for( int i = 0; i < runtimes.length; i++ ) {
if( runtimes[i].getName().equals(runtimeName)) return runtimes[i];
}
return null;
}
}
1.1 date: 2006/08/26 02:33:14; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/JBoss40RuntimeWizardFragment.java
Index: JBoss40RuntimeWizardFragment.java
===================================================================
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.ide.eclipse.as.ui.wizards;
import org.eclipse.jface.resource.ImageDescriptor;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
/**
* @author Marshall
*/
public class JBoss40RuntimeWizardFragment extends AbstractJBossRuntimeWizardFragment
{
protected ImageDescriptor getImageDescriptor()
{
return JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.WIZBAN_JBOSS40_LOGO);
}
}
1.1 date: 2006/08/26 02:33:14; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/JBoss32RuntimeWizardFragment.java
Index: JBoss32RuntimeWizardFragment.java
===================================================================
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.ide.eclipse.as.ui.wizards;
import org.eclipse.jface.resource.ImageDescriptor;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
/**
* @author Marshall
*/
public class JBoss32RuntimeWizardFragment extends AbstractJBossRuntimeWizardFragment
{
protected ImageDescriptor getImageDescriptor()
{
return JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.WIZBAN_JBOSS32_LOGO);
}
}
1.1 date: 2006/08/26 02:33:14; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/AbstractJBossServerWizardFragment.java
Index: AbstractJBossServerWizardFragment.java
===================================================================
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.ide.eclipse.as.ui.wizards;
import java.io.File;
import java.util.ArrayList;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.IVMInstallType;
import org.eclipse.jdt.launching.JavaRuntime;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.preference.IPreferenceNode;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.preference.PreferenceManager;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.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.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.eclipse.wst.server.core.TaskModel;
import org.eclipse.wst.server.core.internal.ServerType;
import org.eclipse.wst.server.ui.wizard.IWizardHandle;
import org.eclipse.wst.server.ui.wizard.WizardFragment;
import org.jboss.ide.eclipse.as.core.server.JBossServer;
import org.jboss.ide.eclipse.as.core.server.ServerAttributeHelper;
import org.jboss.ide.eclipse.as.core.server.runtime.JBossServerRuntime;
import org.jboss.ide.eclipse.as.core.util.ASDebug;
import org.jboss.ide.eclipse.as.ui.Messages;
import org.jboss.ide.eclipse.as.ui.util.JBossConfigurationTableViewer;
public class AbstractJBossServerWizardFragment extends WizardFragment {
//private final static int UNKNOWN_CHANGED = 0;
private final static int NAME_CHANGED = 1;
private final static int HOME_CHANGED = 2;
private final static int JRE_CHANGED = 3;
private final static int CONFIG_CHANGED = 4;
private final static int SEVERITY_ALL = 1;
private final static int SEVERITY_MAJOR = 2;
private IWizardHandle handle;
private Label nameLabel, homeDirLabel, installedJRELabel, configLabel;
private Text nameText, homeDirText;
private Combo jreCombo;
private Button homeDirButton, jreButton;
private Composite nameComposite, homeDirComposite, jreComposite, configComposite;
private Group g;
private String name, homeDir, jre, config;
// jre fields
protected ArrayList installedJREs;
protected String[] jreNames;
protected int defaultVMIndex;
private JBossConfigurationTableViewer configurations;
private IVMInstall selectedVM;
private JBossServer server;
private JBossServerRuntime runtime;
protected void debug (String message)
{
System.out.println("[jboss-wizard-fragment] " + message);
}
public Composite createComposite(Composite parent, IWizardHandle handle)
{
ASDebug.p("in createComposite", this);
this.handle = handle;
Composite main = new Composite(parent, SWT.NONE);
main.setLayout(new FormLayout());
updateJREs();
createNameComposite(main);
g = new Group(main, SWT.NONE);
g.setText("Runtime Information");
g.setLayout(new FormLayout());
FormData groupData = new FormData();
groupData.left = new FormAttachment(0,5);
groupData.right = new FormAttachment(100, -5);
groupData.top = new FormAttachment(nameComposite, 5);
g.setLayoutData(groupData);
createHomeComposite(g);
createJREComposite(g);
createConfigurationComposite(main);
// make modifications to parent
handle.setTitle(Messages.createWizardTitle);
handle.setDescription(Messages.createWizardDescription);
//handle.setImageDescriptor (getImageDescriptor());
return main;
}
private void createNameComposite(Composite main) {
// Create our name composite
nameComposite = new Composite(main, SWT.NONE);
FormData cData = new FormData();
cData.left = new FormAttachment(0,5);
cData.right = new FormAttachment(100,-5);
cData.top = new FormAttachment(0, 10);
nameComposite.setLayoutData(cData);
nameComposite.setLayout(new FormLayout());
// create internal widgets
nameLabel = new Label(nameComposite, SWT.None);
nameLabel.setText(Messages.wizardFragmentNameLabel);
nameText = new Text(nameComposite, SWT.BORDER);
nameText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
updatePage(NAME_CHANGED);
}
});
// organize widgets inside composite
FormData nameLabelData = new FormData();
nameLabelData.left = new FormAttachment(0,0);
nameLabel.setLayoutData(nameLabelData);
FormData nameTextData = new FormData();
nameTextData.left = new FormAttachment(0, 5);
nameTextData.right = new FormAttachment(100, -5);
nameTextData.top = new FormAttachment(nameLabel, 5);
nameText.setLayoutData(nameTextData);
}
private void createHomeComposite(Composite main) {
// Create our composite
homeDirComposite = new Composite(main, SWT.NONE);
FormData cData = new FormData();
cData.left = new FormAttachment(0,5);
cData.right = new FormAttachment(100,-5);
cData.top = new FormAttachment(0, 5);
homeDirComposite.setLayoutData(cData);
homeDirComposite.setLayout(new FormLayout());
// Create Internal Widgets
homeDirLabel = new Label(homeDirComposite, SWT.NONE);
homeDirLabel.setText(Messages.wizardFragmentHomeDirLabel);
homeDirText = new Text(homeDirComposite, SWT.BORDER);
homeDirText.setEditable(false);
// homeDirButton = new Button(homeDirComposite, SWT.NONE);
// homeDirButton.setText(Messages.browse);
// Add listeners
homeDirText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
updatePage(HOME_CHANGED);
}
});
// homeDirButton.addSelectionListener(new SelectionListener() {
// public void widgetDefaultSelected(SelectionEvent e) {
// browseHomeDirClicked();
// }
//
// public void widgetSelected(SelectionEvent e) {
// browseHomeDirClicked();
// }
//
// });
// Set Layout Data
FormData labelData = new FormData();
FormData textData = new FormData();
//FormData buttonData = new FormData();
labelData.left = new FormAttachment(0,0);
homeDirLabel.setLayoutData(labelData);
textData.left = new FormAttachment(0, 5);
textData.right = new FormAttachment(100, -5);
textData.top = new FormAttachment(homeDirLabel, 5);
homeDirText.setLayoutData(textData);
// buttonData.top = new FormAttachment(homeDirLabel, 5);
// buttonData.right = new FormAttachment(100, 0);
// homeDirButton.setLayoutData(buttonData);
}
private void createJREComposite(Composite main) {
// Create our composite
jreComposite = new Composite(main, SWT.NONE);
FormData cData = new FormData();
cData.left = new FormAttachment(0,5);
cData.right = new FormAttachment(100,-5);
cData.top = new FormAttachment(homeDirComposite, 10);
jreComposite.setLayoutData(cData);
jreComposite.setLayout(new FormLayout());
// Create Internal Widgets
installedJRELabel = new Label(jreComposite, SWT.NONE);
installedJRELabel.setText(Messages.wizardFragmentJRELabel);
jreCombo = new Combo(jreComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
jreCombo.setItems(jreNames);
jreCombo.select(defaultVMIndex);
jreCombo.setEnabled(false);
// jreButton = new Button(jreComposite, SWT.NONE);
// jreButton.setText(Messages.installedJREs);
// Add action listeners
// jreButton.addSelectionListener(new SelectionAdapter() {
// public void widgetSelected(SelectionEvent e) {
// String currentVM = jreCombo.getText();
// if (showPreferencePage()) {
// updateJREs();
// jreCombo.setItems(jreNames);
// jreCombo.setText(currentVM);
// if (jreCombo.getSelectionIndex() == -1)
// jreCombo.select(defaultVMIndex);
// }
// }
// });
//
// jreCombo.addSelectionListener(new SelectionListener() {
// public void widgetDefaultSelected(SelectionEvent e) {
// updatePage(CONFIG_CHANGED);
// }
//
// public void widgetSelected(SelectionEvent e) {
// updatePage(CONFIG_CHANGED);
// }
// } );
// Set Layout Data
FormData labelData = new FormData();
FormData comboData = new FormData();
labelData.left = new FormAttachment(0,5);
labelData.top = new FormAttachment(0, 7);
installedJRELabel.setLayoutData(labelData);
comboData.left = new FormAttachment(installedJRELabel, 5);
comboData.right = new FormAttachment(60, -5);
comboData.top = new FormAttachment(homeDirComposite, 5);
jreCombo.setLayoutData(comboData);
// buttonData.top = new FormAttachment(installedJRELabel, 5);
// buttonData.right = new FormAttachment(100, 0);
// jreButton.setLayoutData(buttonData);
}
private void createConfigurationComposite(Composite main) {
configComposite = new Composite(main, SWT.NONE);
FormData cData = new FormData();
cData.left = new FormAttachment(0,5);
cData.right = new FormAttachment(100,-5);
cData.top = new FormAttachment(g, 10);
configComposite.setLayoutData(cData);
configComposite.setLayout(new FormLayout());
configLabel = new Label(configComposite, SWT.NONE);
configLabel.setText(Messages.wizardFragmentConfigLabel);
configurations = new JBossConfigurationTableViewer(configComposite,
SWT.BORDER | SWT.SINGLE);
FormData labelData = new FormData();
labelData.left = new FormAttachment(0,5);
configLabel.setLayoutData(labelData);
FormData viewerData = new FormData();
viewerData.left = new FormAttachment(0, 5);
viewerData.right = new FormAttachment(100, -5);
viewerData.top = new FormAttachment(configLabel, 5);
configurations.getTable().setLayoutData(viewerData);
configurations.getTable().addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
updatePage(CONFIG_CHANGED);
}
public void widgetSelected(SelectionEvent e) {
updatePage(CONFIG_CHANGED);
}
} );
}
private void updatePage(int changed) {
switch( changed ) {
case NAME_CHANGED:
updateErrorMessage(SEVERITY_MAJOR);
break;
case HOME_CHANGED:
if (! new File(homeDirText.getText()).exists()) {
configurations.getControl().setEnabled(false);
} else {
// No errors, clear the message and update the available configurations
configurations.setJBossHome(homeDirText.getText());
configurations.setDefaultConfiguration("default");
// update config variable
int index = configurations.getTable().getSelectionIndex();
config = configurations.getTable().getItem(index).getText();
}
updateErrorMessage(SEVERITY_MAJOR);
break;
case JRE_CHANGED:
int sel = jreCombo.getSelectionIndex();
selectedVM = (IVMInstall) installedJREs.get(sel);
break;
case CONFIG_CHANGED:
int index = configurations.getTable().getSelectionIndex();
config = configurations.getTable().getItem(index).getText();
break;
default:
break;
}
}
private void updateErrorMessage(int severity) {
String error = getErrorString(severity);
if( error == null ) {
handle.setMessage(null, IMessageProvider.NONE);
return;
}
handle.setMessage(error, IMessageProvider.ERROR);
}
private String getErrorString(int severity) {
if( getJbossServerFolder(nameText.getText()) != null && getJbossServerFolder(nameText.getText()).exists() ) {
return Messages.serverNameInUse;
}
if ( !new File(homeDirText.getText()).exists()) {
return Messages.invalidDirectory;
}
if( severity == SEVERITY_MAJOR ) return null;
// now give minor warnings
if( nameText.getText().trim().equals(""))
return Messages.nameTextBlank;
if( homeDirText.getText().trim().equals(""))
return Messages.homeDirBlank;
return null;
}
// private void browseHomeDirClicked() {
// File file = new File(homeDirText.getText());
// if (! file.exists()) {
// file = null;
// }
//
// File directory = getDirectory(file, homeDirComposite.getShell());
// if (directory == null) {
// return;
// }
//
// homeDirText.setText(directory.getAbsolutePath());
// }
protected File getDirectory(File startingDirectory, Shell shell) {
DirectoryDialog fileDialog = new DirectoryDialog(shell, SWT.OPEN);
if (startingDirectory != null) {
fileDialog.setFilterPath(startingDirectory.getPath());
}
String dir = fileDialog.open();
if (dir != null) {
dir = dir.trim();
if (dir.length() > 0) {
return new File(dir);
}
}
return null;
}
// Other
protected boolean showPreferencePage() {
PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();
IPreferenceNode node = manager.find("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage").findSubNode("org.eclipse.jdt.debug.ui.preferences.VMPreferencePage");
PreferenceManager manager2 = new PreferenceManager();
manager2.addToRoot(node);
final PreferenceDialog dialog = new PreferenceDialog(jreButton.getShell(), manager2);
final boolean[] result = new boolean[] { false };
BusyIndicator.showWhile(jreButton.getDisplay(), new Runnable() {
public void run() {
dialog.create();
if (dialog.open() == Window.OK)
result[0] = true;
}
});
return result[0];
}
// JRE methods
protected void updateJREs() {
// get all installed JVMs
installedJREs = new ArrayList();
IVMInstallType[] vmInstallTypes = JavaRuntime.getVMInstallTypes();
int size = vmInstallTypes.length;
for (int i = 0; i < size; i++) {
IVMInstall[] vmInstalls = vmInstallTypes[i].getVMInstalls();
int size2 = vmInstalls.length;
for (int j = 0; j < size2; j++) {
installedJREs.add(vmInstalls[j]);
}
}
// get names
size = installedJREs.size();
jreNames = new String[size];
for (int i = 0; i < size; i++) {
IVMInstall vmInstall = (IVMInstall) installedJREs.get(i);
jreNames[i] = vmInstall.getName();
}
selectedVM = JavaRuntime.getDefaultVMInstall();
defaultVMIndex = installedJREs.indexOf(selectedVM);
}
// WST API methods
public void enter() {
IRuntime r = (IRuntime) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
IRuntimeWorkingCopy runtimeWC = r.createWorkingCopy();
runtime = (JBossServerRuntime) runtimeWC.loadAdapter(JBossServerRuntime.class, null);
try {
homeDirText.setText(r.getLocation().toOSString());
} catch( Exception e ) {
e.printStackTrace();
}
}
public void exit() {
name = nameText.getText();
homeDir = homeDirText.getText();
jre = jreCombo.getText();
}
public void performFinish(IProgressMonitor monitor) throws CoreException {
IServerWorkingCopy serverWC = (IServerWorkingCopy) getTaskModel().getObject(TaskModel.TASK_SERVER);
IFolder folder = getJbossServerFolder(name);
if( !folder.exists()) {
folder.create(true,true, new NullProgressMonitor());
}
serverWC.setServerConfiguration(folder);
serverWC.setName(name);
server = (JBossServer) serverWC.getAdapter(JBossServer.class);
if( server == null ) {
server = (JBossServer) serverWC.loadAdapter(JBossServer.class, new NullProgressMonitor());
}
ServerAttributeHelper helper = new ServerAttributeHelper(server, serverWC);
//helper.setServerHome(homeDir);
helper.setJbossConfiguration(config);
try {
server.setRuntime(runtime);
//runtime.setVMInstall(selectedVM);
} catch( Exception e ) {
// System.out.println("DYING HERE");
e.printStackTrace();
}
}
public boolean isComplete() {
String s = getErrorString(SEVERITY_ALL);
return s == null ? true : false;
}
//protected abstract ImageDescriptor getImageDescriptor();
public boolean hasComposite() {
return true;
}
private IFolder getJbossServerFolder(String serverName) {
try {
return ServerType.getServerProject().getFolder(serverName);
} catch( Exception e) {
return null;
}
}
}
More information about the jboss-cvs-commits
mailing list