diff options
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java')
-rw-r--r-- | pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java index 1458958f..223ba17d 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/DataSourceSelectionState.java @@ -16,8 +16,14 @@ package at.asit.pdfover.gui.workflow.states; //Imports +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + +import at.asit.pdfover.gui.components.DataSourceSelectComposite; import at.asit.pdfover.gui.workflow.Workflow; import at.asit.pdfover.gui.workflow.WorkflowState; @@ -32,10 +38,56 @@ public class DataSourceSelectionState extends WorkflowState { @SuppressWarnings("unused") private static final Logger log = LoggerFactory.getLogger(DataSourceSelectionState.class); + private DataSourceSelectComposite selectionComposite = null; + + private DataSourceSelectComposite getSelectionComposite(Workflow workflow) { + if(this.selectionComposite == null) { + this.selectionComposite = new DataSourceSelectComposite(workflow.getComposite(), SWT.RESIZE, workflow); + } + + return this.selectionComposite; + } + @Override public void update(Workflow workflow) { - // TODO Auto-generated method stub + DataSourceSelectComposite selection = this.getSelectionComposite(workflow); + + workflow.setTopControl(selection); + selection.layout(); + if(selection.isPress()) { + this.setNextState(new PositioningState()); + } else { + this.setNextState(this); + } + } + + private void recursiveHide(Control ctrl) { + if(ctrl instanceof Composite) { + Composite comp = (Composite)ctrl; + Control[] childs = comp.getChildren(); + for(int i = 0; i < childs.length; i++) { + this.recursiveHide(childs[i]); + } + } + ctrl.setVisible(false); + } + + /* (non-Javadoc) + * @see at.asit.pdfover.gui.workflow.WorkflowState#hideGUI() + */ + @Override + public void hideGUI() { + /*if(this.selectionComposite != null) { + Shell shell = this.selectionComposite.getShell(); + Composite comp = this.selectionComposite.getParent(); + recursiveHide(this.selectionComposite); + this.selectionComposite.layout(); + //this.selectionComposite.setVisible(false); + comp.layout(); + //shell.pack(true); + shell.layout(true); + }*/ } } |