/**
* Copyright 2010 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.eclipse.wizard.project;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
public class NewDroolsProjectWizardPage extends WizardPage {
private Button addSampleJavaRuleCodeButton;
private Button addSampleRuleButton;
private Button addSampleJavaDecisionTableCodeButton;
private Button addSampleDecisionTableCodeButton;
private Button addSampleRuleFlowButton;
private Button addSampleJavaRuleFlowCodeButton;
private boolean addSampleJavaRuleCode = true;
private boolean addSampleRule = true;
private boolean addSampleJavaDecisionTableCode = false;
private boolean addSampleDecisionTableCode = false;
private boolean addSampleJavaRuleFlowCode = false;
private boolean addSampleRuleFlow = false;
public NewDroolsProjectWizardPage() {
super("extendedNewProjectPage");
setTitle("New Drools Project");
setDescription("Create a new Drools Project");
}
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NULL);
composite.setFont(parent.getFont());
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
createControls(composite);
setPageComplete(true);
// Show description on opening
setErrorMessage(null);
setMessage(null);
setControl(composite);
}
private void createControls(Composite parent) {
addSampleRuleButton = createCheckBox(parent,
"Add a sample HelloWorld rule file to this project.");
addSampleRuleButton.setSelection(addSampleRule);
addSampleRuleButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
public void widgetSelected(SelectionEvent e) {
addSampleRule = ((Button) e.widget).getSelection();
}
});
addSampleJavaRuleCodeButton = createCheckBox(parent,
"Add a sample Java class for loading and executing the HelloWorld rules.");
addSampleJavaRuleCodeButton.setSelection(addSampleJavaRuleCode);
addSampleJavaRuleCodeButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
public void widgetSelected(SelectionEvent e) {
addSampleJavaRuleCode = ((Button) e.widget).getSelection();
}
});
addSampleDecisionTableCodeButton = createCheckBox(parent,
"Add a sample HelloWorld decision table file to this project.");
addSampleDecisionTableCodeButton.setSelection(addSampleDecisionTableCode);
addSampleDecisionTableCodeButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
public void widgetSelected(SelectionEvent e) {
addSampleDecisionTableCode = ((Button) e.widget).getSelection();
}
});
addSampleJavaDecisionTableCodeButton = createCheckBox(parent,
"Add a sample Java class for loading and executing the HelloWorld decision table.");
addSampleJavaDecisionTableCodeButton.setSelection(addSampleDecisionTableCode);
addSampleJavaDecisionTableCodeButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
public void widgetSelected(SelectionEvent e) {
addSampleJavaDecisionTableCode = ((Button) e.widget).getSelection();
}
});
addSampleRuleFlowButton = createCheckBox(parent,
"Add a sample HelloWorld process file to this project.");
addSampleRuleFlowButton.setSelection(addSampleRuleFlow);
addSampleRuleFlowButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
public void widgetSelected(SelectionEvent e) {
addSampleRuleFlow = ((Button) e.widget).getSelection();
}
});
addSampleJavaRuleFlowCodeButton = createCheckBox(parent,
"Add a sample Java class for loading and executing the HelloWorld process.");
addSampleJavaRuleFlowCodeButton.setSelection(addSampleJavaRuleFlowCode);
addSampleJavaRuleFlowCodeButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
// do nothing
}
public void widgetSelected(SelectionEvent e) {
addSampleJavaRuleFlowCode = ((Button) e.widget).getSelection();
}
});
}
private Button createCheckBox(Composite group, String label) {
Button button = new Button(group, SWT.CHECK | SWT.LEFT);
button.setText(label);
GridData data = new GridData();
button.setLayoutData(data);
return button;
}
public boolean createRuleFile() {
return addSampleRule;
}
public boolean createJavaRuleFile() {
return addSampleJavaRuleCode;
}
public boolean createDecisionTableFile() {
return addSampleDecisionTableCode;
}
public boolean createJavaDecisionTableFile() {
return addSampleJavaDecisionTableCode;
}
public boolean createRuleFlowFile() {
return addSampleRuleFlow;
}
public boolean createJavaRuleFlowFile() {
return addSampleJavaRuleFlowCode;
}
}