summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java
diff options
context:
space:
mode:
authortkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:57:07 +0000
committertkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7>2013-04-10 18:57:07 +0000
commita8222b9d16145d8b2f8803d13e5afe2b99d47fc0 (patch)
tree36637499e140a59d6e43f74eaceb3e23ec3e1f07 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java
parent9f07d0ac1f3d53d03a4f105b1b99dccd4ac2d473 (diff)
downloadpdf-over-a8222b9d16145d8b2f8803d13e5afe2b99d47fc0.tar.gz
pdf-over-a8222b9d16145d8b2f8803d13e5afe2b99d47fc0.tar.bz2
pdf-over-a8222b9d16145d8b2f8803d13e5afe2b99d47fc0.zip
Configuration and Main Bar Buttons
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@53 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java286
1 files changed, 279 insertions, 7 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java
index 5b826097..e3869105 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/AdvancedConfigurationComposite.java
@@ -17,12 +17,30 @@ package at.asit.pdfover.gui.composites;
// Imports
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.TabItem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import at.asit.pdfover.gui.controls.ErrorDialog;
+import at.asit.pdfover.gui.workflow.ConfigurationContainer;
import at.asit.pdfover.gui.workflow.states.State;
+import at.asit.pdfover.signator.BKUs;
+
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Text;
/**
*
@@ -36,11 +54,234 @@ public class AdvancedConfigurationComposite extends BaseConfigurationComposite {
public AdvancedConfigurationComposite(Composite parent, int style,
State state, ConfigurationContainer container) {
super(parent, style, state, container);
+ setLayout(new FormLayout());
+
+ TabFolder tabFolder = new TabFolder(this, SWT.NONE);
+ FormData fd_tabFolder = new FormData();
+ fd_tabFolder.bottom = new FormAttachment(100, -5);
+ fd_tabFolder.right = new FormAttachment(100, -5);
+ fd_tabFolder.top = new FormAttachment(0, 5);
+ fd_tabFolder.left = new FormAttachment(0, 5);
+ tabFolder.setLayoutData(fd_tabFolder);
+
+ TabItem simpleTabItem = new TabItem(tabFolder, SWT.NULL);
+ simpleTabItem.setText("Simple");
+
+ this.simpleComposite = new SimpleConfigurationComposite(tabFolder,
+ SWT.NONE, state, container);
+
+ simpleTabItem.setControl(this.simpleComposite);
+
+ TabItem advancedTabItem = new TabItem(tabFolder, SWT.NULL);
+ advancedTabItem.setText("Advanced");
+
+ Composite advancedComposite = new Composite(tabFolder, SWT.NONE);
+
+ advancedTabItem.setControl(advancedComposite);
+ advancedComposite.setLayout(new FormLayout());
+
+ Group grpSignaturPosition = new Group(advancedComposite, SWT.NONE);
+ grpSignaturPosition.setText("Signatur Position");
+ grpSignaturPosition.setLayout(new FormLayout());
+ FormData fd_grpSignaturPosition = new FormData();
+ fd_grpSignaturPosition.top = new FormAttachment(0, 5);
+ fd_grpSignaturPosition.bottom = new FormAttachment(33, -5);
+ fd_grpSignaturPosition.right = new FormAttachment(100, -5);
+ fd_grpSignaturPosition.left = new FormAttachment(0, 5);
+ grpSignaturPosition.setLayoutData(fd_grpSignaturPosition);
+
+ this.btnAutomatischePositionierung = new Button(grpSignaturPosition,
+ SWT.CHECK);
+ FormData fd_btnAutomatischePositionierung = new FormData();
+ fd_btnAutomatischePositionierung.right = new FormAttachment(100, -5);
+ fd_btnAutomatischePositionierung.top = new FormAttachment(0, 5);
+ fd_btnAutomatischePositionierung.left = new FormAttachment(0, 5);
+ this.btnAutomatischePositionierung
+ .setLayoutData(fd_btnAutomatischePositionierung);
+ this.btnAutomatischePositionierung.setText("Automatische Positionierung");
- Label lblAdvancedConfigLayout = new Label(this, SWT.NONE);
- lblAdvancedConfigLayout.setBounds(113, 126, 243, 15);
- lblAdvancedConfigLayout.setText("Advanced Config Layout!");
- // TODO Auto-generated constructor stub
+ this.btnAutomatischePositionierung.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ AdvancedConfigurationComposite.this.performPositionSelection(
+ AdvancedConfigurationComposite.this.btnAutomatischePositionierung.getSelection());
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // Nothing to do
+ }
+ });
+
+ Group grpBkuAuswahl = new Group(advancedComposite, SWT.NONE);
+ grpBkuAuswahl.setText("BKU Selection");
+ grpBkuAuswahl.setLayout(new FormLayout());
+ FormData fd_grpBkuAuswahl = new FormData();
+ fd_grpBkuAuswahl.top = new FormAttachment(33, 5);
+ fd_grpBkuAuswahl.left = new FormAttachment(0, 5);
+ fd_grpBkuAuswahl.right = new FormAttachment(100, -5);
+ fd_grpBkuAuswahl.bottom = new FormAttachment(66, -5);
+ grpBkuAuswahl.setLayoutData(fd_grpBkuAuswahl);
+
+ this.cmbBKUAuswahl = new Combo(grpBkuAuswahl, SWT.NONE);
+ FormData fd_cmbBKUAuswahl = new FormData();
+ fd_cmbBKUAuswahl.right = new FormAttachment(100, -5);
+ fd_cmbBKUAuswahl.top = new FormAttachment(0, 5);
+ fd_cmbBKUAuswahl.left = new FormAttachment(0, 5);
+
+ int blen = BKUs.values().length;
+
+ this.bkuStrings = new String[blen];
+
+ // TODO: Implement translation into user language for ENUM Values!!
+ for (int i = 0; i < blen; i++) {
+ this.bkuStrings[i] = BKUs.values()[i].toString();
+ }
+
+ this.cmbBKUAuswahl.setItems(this.bkuStrings);
+
+ this.cmbBKUAuswahl.setLayoutData(fd_cmbBKUAuswahl);
+
+ this.cmbBKUAuswahl.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ int selectionIndex = getBKUElementIndex(AdvancedConfigurationComposite.this.configurationContainer.getBKUSelection());
+ if(AdvancedConfigurationComposite.this.cmbBKUAuswahl.getSelectionIndex() != selectionIndex) {
+ selectionIndex = AdvancedConfigurationComposite.this.cmbBKUAuswahl.getSelectionIndex();
+ performBKUSelectionChanged(AdvancedConfigurationComposite.this.cmbBKUAuswahl.getItem(selectionIndex));
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // Nothing to do here
+ }
+ });
+
+ Group grpSpeicherort = new Group(advancedComposite, SWT.NONE);
+ grpSpeicherort.setText("Outputfolder");
+ grpSpeicherort.setLayout(new FormLayout());
+ FormData fd_grpSpeicherort = new FormData();
+ fd_grpSpeicherort.top = new FormAttachment(66, 5);
+ fd_grpSpeicherort.left = new FormAttachment(0, 5);
+ fd_grpSpeicherort.right = new FormAttachment(100, -5);
+ fd_grpSpeicherort.bottom = new FormAttachment(100, -5);
+ grpSpeicherort.setLayoutData(fd_grpSpeicherort);
+
+ Label lblDefaultOutputFolder = new Label(grpSpeicherort, SWT.NONE);
+ FormData fd_lblDefaultOutputFolder = new FormData();
+ fd_lblDefaultOutputFolder.top = new FormAttachment(0, 5);
+ fd_lblDefaultOutputFolder.left = new FormAttachment(0, 5);
+ lblDefaultOutputFolder.setLayoutData(fd_lblDefaultOutputFolder);
+ lblDefaultOutputFolder.setText("Default output folder:");
+
+ this.txtOutputFolder = new Text(grpSpeicherort, SWT.BORDER);
+ FormData fd_text = new FormData();
+ fd_text.top = new FormAttachment(lblDefaultOutputFolder, 5);
+ fd_text.left = new FormAttachment(0, 5);
+ this.txtOutputFolder.setLayoutData(fd_text);
+
+ this.txtOutputFolder.addFocusListener(new FocusListener() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ performOutputFolderChanged(AdvancedConfigurationComposite.this.txtOutputFolder.getText());
+ }
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ // Nothing to do here!
+ }
+ });
+
+ Button btnBrowse = new Button(grpSpeicherort, SWT.NONE);
+ fd_text.right = new FormAttachment(btnBrowse, -5);
+
+ FormData fd_btnBrowse = new FormData();
+ fd_btnBrowse.top = new FormAttachment(lblDefaultOutputFolder, 5);
+ fd_btnBrowse.right = new FormAttachment(100, -5);
+ btnBrowse.setLayoutData(fd_btnBrowse);
+ btnBrowse.setText("browse");
+
+ btnBrowse.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ DirectoryDialog dlg = new DirectoryDialog(
+ AdvancedConfigurationComposite.this.getShell());
+
+ // Set the initial filter path according
+ // to anything they've selected or typed in
+ dlg.setFilterPath(AdvancedConfigurationComposite.this.txtOutputFolder
+ .getText());
+
+ // Change the title bar text
+ dlg.setText("Select Output folder");
+
+ // Customizable message displayed in the dialog
+ dlg.setMessage("Select a directory");
+
+ // Calling open() will open and run the dialog.
+ // It will return the selected directory, or
+ // null if user cancels
+ String dir = dlg.open();
+ if (dir != null) {
+ // Set the text box to the new selection
+ performOutputFolderChanged(dir);
+ }
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // Nothing to do
+ }
+ });
+ }
+
+ void performOutputFolderChanged(String foldername) {
+ log.debug("Selected Output folder: " + foldername); //$NON-NLS-1$
+ this.configurationContainer.setOutputFolder(foldername);
+ AdvancedConfigurationComposite.this.txtOutputFolder.setText(foldername);
+ }
+
+ int getBKUElementIndex(BKUs bku) {
+ // TODO: Translate to user language!
+ String bkuName = bku.toString();
+
+ for(int i = 0; i < this.bkuStrings.length; i++) {
+ if(this.bkuStrings[i].equals(bkuName)) {
+ log.debug("BKU: " + bkuName + " IDX: " + i); //$NON-NLS-1$ //$NON-NLS-2$
+ return i;
+ }
+ }
+
+ log.warn("NO BKU match for " + bkuName); //$NON-NLS-1$
+ return 0;
+ }
+
+ void performBKUSelectionChanged(BKUs selected) {
+ log.debug("Selected BKU: " + selected.toString()); //$NON-NLS-1$
+ this.configurationContainer.setBKUSelection(selected);
+ this.cmbBKUAuswahl.select(this.getBKUElementIndex(selected));
+ }
+
+ void performBKUSelectionChanged(String selected) {
+ try {
+ BKUs bkuvalue = BKUs.valueOf(selected);
+ this.performBKUSelectionChanged(bkuvalue);
+ } catch (Exception ex) {
+ log.error("Failed to parse BKU value: " + selected, ex); //$NON-NLS-1$
+ ErrorDialog dialog = new ErrorDialog(getShell(), SWT.NONE, "Invalid BKU selection. Please check.", ex);
+ dialog.open();
+ }
+ }
+
+ void performPositionSelection(boolean automatic) {
+ log.debug("Selected Position: " + automatic); //$NON-NLS-1$
+ this.configurationContainer.setAutomaticPosition(automatic);
+ this.btnAutomatischePositionierung.setSelection(automatic);
}
/**
@@ -48,13 +289,44 @@ public class AdvancedConfigurationComposite extends BaseConfigurationComposite {
**/
private static final Logger log = LoggerFactory
.getLogger(AdvancedConfigurationComposite.class);
+ SimpleConfigurationComposite simpleComposite;
+ Text txtOutputFolder;
+ Combo cmbBKUAuswahl;
+ String[] bkuStrings;
+ Button btnAutomatischePositionierung;
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see at.asit.pdfover.gui.composites.StateComposite#doLayout()
*/
@Override
public void doLayout() {
- // TODO Auto-generated method stub
-
+ // Nothing to do here
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * at.asit.pdfover.gui.composites.BaseConfigurationComposite#loadConfiguration
+ * ()
+ */
+ @Override
+ public void loadConfiguration() {
+ this.simpleComposite.loadConfiguration();
+
+ // load advanced settings
+ this.performBKUSelectionChanged(this.configurationContainer.getBKUSelection());
+ this.performOutputFolderChanged(this.configurationContainer.getOutputFolder());
+ this.performPositionSelection(this.configurationContainer.getAutomaticPosition());
+ }
+
+ /* (non-Javadoc)
+ * @see at.asit.pdfover.gui.composites.BaseConfigurationComposite#validateSettings()
+ */
+ @Override
+ public void validateSettings() throws Exception {
+ this.simpleComposite.validateSettings();
}
}