]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/OsgiBootMainTab.java
Release Eclipse plugin v0.13.0.D20100708_1940
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.ide.ui / src / main / java / org / argeo / slc / ide / ui / launch / osgi / OsgiBootMainTab.java
index 95d32eb9552cd60f9fb9af92d97442e8be035ff1..cbe41cdc9d3a1f5ecd4fca93095b5e21b448305e 100644 (file)
@@ -20,9 +20,14 @@ import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+/** Main tab of OSGiBoot launch configuration UI. */
 public class OsgiBootMainTab extends AbstractLaunchConfigurationTab implements
                OsgiLauncherConstants {
        private Listener listener = new Listener();
+
+       private Button syncBundles;
+       private Button clearDataDirectory;
+
        private Button addJvmPaths;
        private Text additionalVmArgs;
 
@@ -32,12 +37,32 @@ public class OsgiBootMainTab extends AbstractLaunchConfigurationTab implements
                Composite container = new Composite(parent, SWT.NONE);
                container.setLayout(new GridLayout());
                container.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+               createGeneral(container);
                createAdditionalProgramArgs(container);
                createAdditionalVmArgumentBlock(container);
                Dialog.applyDialogFont(container);
                setControl(container);
        }
 
+       protected void createGeneral(Composite parent) {
+               Group container = new Group(parent, SWT.NONE);
+               container.setText("General");
+               GridLayout layout = new GridLayout();
+               layout.numColumns = 2;
+               container.setLayout(layout);
+               container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+               syncBundles = new Button(container, SWT.CHECK);
+               syncBundles.addSelectionListener(listener);
+               new Label(container, SWT.NONE)
+                               .setText("Keep bundles in line with target platform and workspace (recommended)");
+               clearDataDirectory = new Button(container, SWT.CHECK);
+               clearDataDirectory.addSelectionListener(listener);
+               new Label(container, SWT.NONE)
+                               .setText("Clear data directory before launch");
+       }
+
        protected void createAdditionalProgramArgs(Composite parent) {
                Group container = new Group(parent, SWT.NONE);
                container.setText("Additional Program Arguments");
@@ -92,6 +117,11 @@ public class OsgiBootMainTab extends AbstractLaunchConfigurationTab implements
        public void initializeFrom(ILaunchConfiguration configuration) {
                // System.out.println("initializeFrom");
                try {
+                       syncBundles.setSelection(configuration.getAttribute(
+                                       ATTR_SYNC_BUNDLES, true));
+                       clearDataDirectory.setSelection(configuration.getAttribute(
+                                       ATTR_CLEAR_DATA_DIRECTORY, false));
+
                        additionalProgramArgs.setText(configuration.getAttribute(
                                        ATTR_ADDITIONAL_PROGRAM_ARGS, ""));
                        addJvmPaths.setSelection(configuration.getAttribute(
@@ -106,6 +136,11 @@ public class OsgiBootMainTab extends AbstractLaunchConfigurationTab implements
 
        public void performApply(ILaunchConfigurationWorkingCopy configuration) {
                // System.out.println("performApply");
+               configuration.setAttribute(ATTR_SYNC_BUNDLES, syncBundles
+                               .getSelection());
+               configuration.setAttribute(ATTR_CLEAR_DATA_DIRECTORY,
+                               clearDataDirectory.getSelection());
+
                configuration.setAttribute(ATTR_ADDITIONAL_PROGRAM_ARGS,
                                additionalProgramArgs.getText());
                configuration.setAttribute(ATTR_ADDITIONAL_VM_ARGS, additionalVmArgs
@@ -119,6 +154,8 @@ public class OsgiBootMainTab extends AbstractLaunchConfigurationTab implements
 
        public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
                // System.out.println("setDefaults");
+               configuration.setAttribute(ATTR_SYNC_BUNDLES, true);
+               configuration.setAttribute(ATTR_CLEAR_DATA_DIRECTORY, false);
                configuration.setAttribute(ATTR_ADD_JVM_PATHS, false);
                configuration.setAttribute(ATTR_ADDITIONAL_VM_ARGS, "-Xmx128m");
                configuration.setAttribute(ATTR_ADDITIONAL_PROGRAM_ARGS, "-console");