- Timestamp:
- 08/17/12 11:38:43 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/quest-ui-swt/src/main/java/de/ugoe/cs/quest/ui/swt/SequencesDialog.java
r548 r570 1 1 2 package de.ugoe.cs.quest.ui.swt; 2 3 … … 24 25 public class SequencesDialog extends Dialog { 25 26 26 private String sequencesName; 27 28 private List sequenceList; 29 private Collection<java.util.List<Event>> sequences; 30 private SortedSet<String> targets; 31 32 protected Shell shell; 27 private String sequencesName; 33 28 34 /** 35 * Create the dialog. 36 * @param parent 37 * @param style 38 */ 39 public SequencesDialog(Shell parent, int style) { 40 super(parent, style); 41 setText("SWT Dialog"); 42 } 29 private List sequenceList; 30 private Collection<java.util.List<Event>> sequences; 31 private SortedSet<String> targets; 43 32 44 /** 45 * Open the dialog. 46 */ 47 public void open(String sequencesName) { 48 this.sequencesName = sequencesName; 49 sequences = null; 50 createContents(); 51 shell.open(); 52 shell.layout(); 53 Display display = getParent().getDisplay(); 54 while (!shell.isDisposed()) { 55 if (!display.readAndDispatch()) { 56 display.sleep(); 57 } 58 } 59 } 33 protected Shell shell; 60 34 61 /** 62 * Create contents of the dialog. 63 */ 64 private void createContents() { 65 shell = new Shell(getParent(), SWT.SHELL_TRIM | SWT.BORDER | SWT.APPLICATION_MODAL); 66 shell.setSize(248, 299); 67 shell.setText(getText()); 68 shell.setLayout(new GridLayout(2, false)); 69 70 sequenceList = new List(shell, SWT.BORDER | SWT.V_SCROLL); 71 sequenceList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); 72 updateSequenceList(); 73 74 Button btnShow = new Button(shell, SWT.NONE); 75 btnShow.addSelectionListener(new SelectionAdapter() { 76 @Override 77 public void widgetSelected(SelectionEvent e) { 78 int index = sequenceList.getSelectionIndex(); 79 if( index==-1 ) { 80 MessageBox messageBox = new MessageBox(shell, SWT.ERROR); 81 messageBox.setMessage("No sequence selected!"); 82 messageBox.setText("Error"); 83 messageBox.open(); 84 } else { 85 EditSequenceDialog editSequenceDialog = new EditSequenceDialog(shell, SWT.NONE, targets); 86 int counter = 0; 87 java.util.List<Event> selectedSequence = null; 88 for( java.util.List<Event> sequence : sequences ) { 89 if( counter==index ) { 90 selectedSequence = sequence; 91 break; 92 } 93 counter++; 94 } 95 editSequenceDialog.open(selectedSequence); 96 updateSequenceList(); 97 } 98 } 99 }); 100 btnShow.setText("Show"); 101 102 Button btnClose = new Button(shell, SWT.NONE); 103 btnClose.addSelectionListener(new SelectionAdapter() { 104 @Override 105 public void widgetSelected(SelectionEvent e) { 106 shell.dispose(); 107 } 108 }); 109 btnClose.setText("Close"); 35 /** 36 * Create the dialog. 37 * 38 * @param parent 39 * @param style 40 */ 41 public SequencesDialog(Shell parent, int style) { 42 super(parent, style); 43 setText("SWT Dialog"); 44 } 110 45 111 } 112 113 @SuppressWarnings("unchecked") 114 private void updateSequenceList() { 115 sequenceList.removeAll(); 116 Object dataObject = GlobalDataContainer.getInstance().getData(sequencesName); 117 if( SequenceInstanceOf.isCollectionOfSequences(dataObject)) { 118 sequences = (Collection<java.util.List<Event>>) dataObject; 119 int seqDigits = Integer.toString(sequences.size()).length(); 120 int counter = 1; 121 for( java.util.List<Event> sequence : sequences ) { 122 String seqName = "#"+String.format("%0"+seqDigits+"d", counter)+": "+sequence.size(); 123 sequenceList.add(seqName); 124 counter++; 125 } 126 Object targetObject = GlobalDataContainer.getInstance().getData(sequencesName+"_targets"); 127 targets = null; 128 if( targetObject instanceof SortedSet ) { 129 if( !((SortedSet<?>) targetObject).isEmpty() ) { 130 if( ((SortedSet<?>) targetObject).first() instanceof String ) { 131 targets = (SortedSet<String>) targetObject; 132 } 133 } 134 } 135 if( targets==null ) { 136 targets = new TreeSet<String>(); 137 for( java.util.List<Event> sequence : sequences ) { 138 for( Event event : sequence ) { 139 String target = event.getTarget(); 140 if( target!=null ) { 141 targets.add(target); 142 } 143 } 144 } 145 } 146 } else { 147 MessageBox messageBox = new MessageBox(shell, SWT.ERROR); 148 messageBox.setMessage("Internal error. Sequences object not of expected type!"); 149 messageBox.setText("Error"); 150 messageBox.open(); 151 } 152 } 46 /** 47 * Open the dialog. 48 */ 49 public void open(String sequencesName) { 50 this.sequencesName = sequencesName; 51 sequences = null; 52 createContents(); 53 shell.open(); 54 shell.layout(); 55 Display display = getParent().getDisplay(); 56 while (!shell.isDisposed()) { 57 if (!display.readAndDispatch()) { 58 display.sleep(); 59 } 60 } 61 } 62 63 /** 64 * Create contents of the dialog. 65 */ 66 private void createContents() { 67 shell = new Shell(getParent(), SWT.SHELL_TRIM | SWT.BORDER | SWT.APPLICATION_MODAL); 68 shell.setSize(248, 299); 69 shell.setText(getText()); 70 shell.setLayout(new GridLayout(2, false)); 71 72 sequenceList = new List(shell, SWT.BORDER | SWT.V_SCROLL); 73 sequenceList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); 74 updateSequenceList(); 75 76 Button btnShow = new Button(shell, SWT.NONE); 77 btnShow.addSelectionListener(new SelectionAdapter() { 78 @Override 79 public void widgetSelected(SelectionEvent e) { 80 int index = sequenceList.getSelectionIndex(); 81 if (index == -1) { 82 MessageBox messageBox = new MessageBox(shell, SWT.ERROR); 83 messageBox.setMessage("No sequence selected!"); 84 messageBox.setText("Error"); 85 messageBox.open(); 86 } 87 else { 88 EditSequenceDialog editSequenceDialog = 89 new EditSequenceDialog(shell, SWT.NONE, targets); 90 int counter = 0; 91 java.util.List<Event> selectedSequence = null; 92 for (java.util.List<Event> sequence : sequences) { 93 if (counter == index) { 94 selectedSequence = sequence; 95 break; 96 } 97 counter++; 98 } 99 editSequenceDialog.open(selectedSequence); 100 updateSequenceList(); 101 } 102 } 103 }); 104 btnShow.setText("Show"); 105 106 Button btnClose = new Button(shell, SWT.NONE); 107 btnClose.addSelectionListener(new SelectionAdapter() { 108 @Override 109 public void widgetSelected(SelectionEvent e) { 110 shell.dispose(); 111 } 112 }); 113 btnClose.setText("Close"); 114 115 } 116 117 @SuppressWarnings("unchecked") 118 private void updateSequenceList() { 119 sequenceList.removeAll(); 120 Object dataObject = GlobalDataContainer.getInstance().getData(sequencesName); 121 if (SequenceInstanceOf.isCollectionOfSequences(dataObject)) { 122 sequences = (Collection<java.util.List<Event>>) dataObject; 123 int seqDigits = Integer.toString(sequences.size()).length(); 124 int counter = 1; 125 for (java.util.List<Event> sequence : sequences) { 126 String seqName = 127 "#" + String.format("%0" + seqDigits + "d", counter) + ": " + sequence.size(); 128 sequenceList.add(seqName); 129 counter++; 130 } 131 Object targetObject = 132 GlobalDataContainer.getInstance().getData(sequencesName + "_targets"); 133 targets = null; 134 if (targetObject instanceof SortedSet) { 135 if (!((SortedSet<?>) targetObject).isEmpty()) { 136 if (((SortedSet<?>) targetObject).first() instanceof String) { 137 targets = (SortedSet<String>) targetObject; 138 } 139 } 140 } 141 if (targets == null) { 142 targets = new TreeSet<String>(); 143 for (java.util.List<Event> sequence : sequences) { 144 for (Event event : sequence) { 145 // TODO check if toString() is sufficient 146 String target = event.getTarget().toString(); 147 if (target != null) { 148 targets.add(target); 149 } 150 } 151 } 152 } 153 } 154 else { 155 MessageBox messageBox = new MessageBox(shell, SWT.ERROR); 156 messageBox.setMessage("Internal error. Sequences object not of expected type!"); 157 messageBox.setText("Error"); 158 messageBox.open(); 159 } 160 } 153 161 154 162 }
Note: See TracChangeset
for help on using the changeset viewer.