/** * Creates the composite holding the details. * * @param parent the parent * @return the right panel/detail composite */ protected ScrolledComposite createRightPanelContent(Composite parent) { rightPanel = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL); rightPanel.setShowFocusedControl(true); rightPanel.setExpandVertical(true); rightPanel.setExpandHorizontal(true); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(rightPanel); rightPanel.setLayout(GridLayoutFactory.fillDefaults().create()); rightPanel.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); container = new Composite(rightPanel, SWT.FILL); container.setLayout(GridLayoutFactory.fillDefaults().create()); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(container); container.setBackground(rightPanel.getBackground()); /* The header */ final Composite header = new Composite(container, SWT.FILL); final GridLayout headerLayout = GridLayoutFactory.fillDefaults().create(); headerLayout.marginWidth = 5; header.setLayout(headerLayout); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(header); header.setBackground(rightPanel.getBackground()); final Label label = new Label(header, SWT.WRAP); label.setText("Details"); // $NON-NLS-1$ detailsFont = new Font(label.getDisplay(), getDefaultFontName(label), 10, SWT.BOLD); label.setFont(detailsFont); label.setForeground(getTitleColor(parent)); label.setBackground(header.getBackground()); rightPanelContainerComposite = new Composite(container, SWT.FILL); rightPanelContainerComposite.setLayout(GridLayoutFactory.fillDefaults().create()); GridDataFactory.fillDefaults() .align(SWT.FILL, SWT.FILL) .grab(true, true) .applyTo(rightPanelContainerComposite); rightPanelContainerComposite.setBackground(rightPanel.getBackground()); rightPanel.setContent(container); rightPanel.layout(); container.layout(); final Point point = container.computeSize(SWT.DEFAULT, SWT.DEFAULT); rightPanel.setMinSize(point); return rightPanel; }
/** * Resizes the Section's client and updates the Property Viewer's {@link ScrolledComposite} to * account for GridLayouts in the client. */ private void resizePropertyView() { // Disable re-drawing for the ScrolledComposite. scrollComposite.setRedraw(false); int verticalPadding = scrollComposite.getHorizontalBar().getSize().y; int horizontalPadding = scrollComposite.getVerticalBar().getSize().x; Rectangle clientArea = scrollComposite.getClientArea(); Point clientAreaSize = new Point(clientArea.width - horizontalPadding, clientArea.height - verticalPadding); // Recompute the size of the first Composite in the ScrolledComposite // based on the width of the ScrolledComposite's client area. Point size = scrollCompositeClient.computeSize(clientAreaSize.x, clientAreaSize.y); // Update the size of the ScrolledComposite's client. scrollCompositeClient.setSize(size); // Set the minimum size at which the ScrolledComposite will start // drawing scroll bars. This should be the size of its client area minus // the spaces the scroll bars would consume. scrollComposite.setMinSize(clientAreaSize.x + 1, clientAreaSize.y + 1); // We need to call layout() so the ScrolledComposite will update. scrollComposite.layout(); // Set the height hint for the Section's parent Composite. This keeps // the TableViewer from going beyond the bottom edge of the Properties // Viewer. We want to keep the add and delete buttons visible, and the // TableViewer already has its own scroll bars! Composite sectionParent = section.getParent(); GridData gridData = (GridData) sectionParent.getLayoutData(); GridLayout gridLayout = (GridLayout) sectionParent.getParent().getLayout(); gridData.heightHint = sectionParent.getParent().getSize().y - gridLayout.marginTop; // The parent of the Section has a FillLayout. Its parent has a // GridLayout, but sometimes it does not update. Tell it to layout so // the Section's parent will update its size. section.getParent().getParent().layout(); // Enable re-drawing for the ScrolledComposite. scrollComposite.setRedraw(true); return; }
/** * When any <code>ProgressReporterPanel</code> in this window is expanded or collapsed re-layout * the controls and window appropriately */ public void isCollapsed(boolean value) { if (null != shell && false == shell.isDisposed()) { scrollable.setRedraw(false); Rectangle r = scrollable.getClientArea(); scrollable.setMinSize(scrollChild.computeSize(r.width, SWT.DEFAULT)); /* * Resizing to fit the panel if there is only one */ if (pReporters.length == 1) { Point p = shell.computeSize(defaultShellWidth, SWT.DEFAULT); if (shell.getSize().y != p.y) { p.x = shell.getSize().x; shell.setSize(p); } } scrollable.layout(); scrollable.setRedraw(true); } }
/** * Restores the layout properties stored in {@link #aboutToBeShown()} and changed in {@link * #resizePropertyView()}. */ @Override public void aboutToBeHidden() { super.aboutToBeHidden(); // If possible, we need to restore the settings clobbered in // resizeProperties(); if (!scrollComposite.isDisposed()) { // Restore the GridData of the Section's parent. GridData gridData = (GridData) section.getParent().getLayoutData(); gridData.heightHint = SWT.DEFAULT; // Restore the default size of the ScrolledComposite's client. Point size = scrollCompositeClient.computeSize(SWT.DEFAULT, SWT.DEFAULT); scrollCompositeClient.setSize(size); // Restore the min size of the ScrolledComposite. scrollComposite.setMinSize(scrollMinWidth, scrollMinHeight); // Re-layout the ScrolledComposite. scrollComposite.layout(); } return; }
private void loadPhotos() { if (selectedPhotosFilesList == null) { selectedPhotosFilesList = new ArrayList<String>(); } else { selectedPhotosFilesList.clear(); } if (thumbnailWidgetList == null) { thumbnailWidgetList = new ArrayList<ThumbnailWidget>(); } else { thumbnailWidgetList.clear(); } ImagesGridView imagesGridView = (ImagesGridView) Activator.getView( PlatformUI.getWorkbench().getActiveWorkbenchWindow(), ImagesGridView.ID); Composite thumbnailGridComposite = imagesGridView.getThumbnailGridComposite(); for (Control control : thumbnailGridComposite.getChildren()) { control.dispose(); } int gridWidth = thumbnailGridComposite.getBounds().width; int numberOfColumns = gridWidth / 200 - 1; GridLayout thumbnailGridCompositeGL = new GridLayout(numberOfColumns, true); thumbnailGridComposite.setLayout(thumbnailGridCompositeGL); GridData thumbnailGridCompositeGD = new GridData(GridData.FILL_BOTH); thumbnailGridCompositeGD.horizontalSpan = 2; thumbnailGridComposite.setLayoutData(thumbnailGridCompositeGD); if (loadedPhotosList != null && loadedPhotosList.size() > 0) { // begin add photo composite, check and text fields for (ListIterator<String> selectedPhotosIterator = loadedPhotosList.listIterator(); selectedPhotosIterator.hasNext(); ) { String selectedPhotoFilePath = selectedPhotosIterator.next(); // check if the file has a valid imagesList final Image thumbnail; try { thumbnail = new Image(Display.getDefault(), selectedPhotoFilePath); } catch (SWTException ex) { selectedPhotosIterator.remove(); continue; } Composite imageParentComposite = new Composite(thumbnailGridComposite, SWT.BORDER); GridLayout imageParentCompositeGridLayout = new GridLayout(2, false); imageParentComposite.setLayout(imageParentCompositeGridLayout); GridData imageParentCompositeGridData = new GridData(); imageParentCompositeGridData.grabExcessHorizontalSpace = true; imageParentComposite.setLayoutData(imageParentCompositeGridData); final Composite imageComposite = new Composite(imageParentComposite, SWT.BORDER); GridData imageCompositeGridData = new GridData(175, 200); imageCompositeGridData.horizontalSpan = 2; imageComposite.setLayoutData(imageCompositeGridData); imageComposite.addMouseListener( new MouseListener() { @Override public void mouseUp(MouseEvent e) {} @Override public void mouseDown(MouseEvent e) {} @Override public void mouseDoubleClick(MouseEvent e) { String selectedPhotosFile = ((ThumbnailWidget) imageComposite.getData()).getSelectedPhotoFilePath(); Dialog dialog = new OriginalSizeImageDialog( Display.getDefault().getActiveShell(), new Image[] {new Image(Display.getDefault(), selectedPhotosFile)}); dialog.open(); } }); ResizeImageListener comp1Listener = new ResizeImageListener(thumbnail, imageComposite, true); imageComposite.addListener(SWT.Dispose, comp1Listener); imageComposite.addListener(SWT.Paint, comp1Listener); final Button checkBox = new Button(imageParentComposite, SWT.CHECK); Text imageDescriptionText = new Text(imageParentComposite, SWT.BORDER); GridData imageDescriptionTextGridData = new GridData(GridData.FILL_HORIZONTAL); imageDescriptionTextGridData.grabExcessHorizontalSpace = true; imageDescriptionText.setLayoutData(imageDescriptionTextGridData); ThumbnailWidget thumbnailWidget = new ThumbnailWidget(); thumbnailWidget.setImageParentComposite(imageParentComposite); thumbnailWidget.setImageComposite(imageComposite); thumbnailWidget.setImageDescriptionText(imageDescriptionText); thumbnailWidget.setImage(thumbnail); thumbnailWidget.setCheckBox(checkBox); thumbnailWidget.setSelectedPhotoFilePath(selectedPhotoFilePath); checkBox.setData(thumbnailWidget); imageDescriptionText.setData(thumbnailWidget); imageComposite.setData(thumbnailWidget); thumbnailWidgetList.add(thumbnailWidget); checkBox.addSelectionListener( new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { String selectedPhotosFile = ((ThumbnailWidget) checkBox.getData()).getSelectedPhotoFilePath(); if (checkBox.getSelection()) { selectedPhotosFilesList.add(selectedPhotosFile); } else { selectedPhotosFilesList.remove(selectedPhotosFile); } } @Override public void widgetDefaultSelected(SelectionEvent e) {} }); } // end add photo composite, check and text fields ScrolledComposite thumbnailGridScrolledComposite = imagesGridView.getViewerScrolledComposite(); Point size = thumbnailGridComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT); thumbnailGridScrolledComposite.setMinSize(size); thumbnailGridScrolledComposite.setContent(thumbnailGridComposite); thumbnailGridScrolledComposite.layout(true); } // show image grid view try { PlatformUI.getWorkbench() .getActiveWorkbenchWindow() .getActivePage() .showView(ImagesGridView.ID); } catch (PartInitException e1) { e1.printStackTrace(); } }
@Override public void createPartControl(Composite parent) { Activator.getDefault() .getPreferenceStore() .addPropertyChangeListener( new IPropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent event) { if (event.getProperty() == "selectedfont") { FontData[] fonts = (FontData[]) event.getNewValue(); Font font = new Font(Display.getDefault(), fonts[0]); setFont(newPatientVisitComposite, font); } } }); final Composite composite = new Composite(parent, SWT.NONE); GridLayout compositeGL = new GridLayout(1, true); composite.setLayout(compositeGL); GridData compositeGD = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_BOTH); composite.setLayoutData(compositeGD); composite.setSize(composite.computeSize(parent.getSize().x, SWT.DEFAULT)); scrolledComposite = new ScrolledComposite(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); scrolledComposite.setExpandHorizontal(true); scrolledComposite.setExpandVertical(true); GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_BOTH); scrolledComposite.setLayoutData(data); scrolledComposite.setSize(scrolledComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)); newPatientVisitComposite = new Composite(scrolledComposite, SWT.NULL); GridLayout newPatientVisitCompositeGL = new GridLayout(1, false); newPatientVisitComposite.setLayout(newPatientVisitCompositeGL); GridData newPatientVisitCompositeGD = new GridData(GridData.FILL_BOTH); newPatientVisitComposite.setLayoutData(newPatientVisitCompositeGD); Group newPatientGroup = new Group(newPatientVisitComposite, SWT.NULL); newPatientGroup.setText("New / Search patient"); GridLayout newPatientGroupGL = new GridLayout(4, true); newPatientGroup.setLayout(newPatientGroupGL); GridData newPatientGroupGD = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL); newPatientGroupGD.verticalIndent = 0; newPatientGroup.setLayoutData(newPatientGroupGD); // new patient / search components Button radioButtonNewPatient = new Button(newPatientGroup, SWT.RADIO); radioButtonNewPatient.setText("New Patient"); GridData radioBtnNewPatientGD = new GridData(); radioBtnNewPatientGD.horizontalSpan = 2; radioButtonNewPatient.setLayoutData(radioBtnNewPatientGD); Button radioButtonSearch = new Button(newPatientGroup, SWT.RADIO); radioButtonSearch.setText("Search"); GridData radioBtnSearchGD = new GridData(); radioBtnSearchGD.horizontalSpan = 2; radioButtonSearch.setLayoutData(radioBtnSearchGD); Label lblName = new Label(newPatientGroup, SWT.NONE); lblName.setText("Name"); GridData lblNameGD = new GridData(); lblNameGD.horizontalSpan = 3; lblNameGD.verticalIndent = 5; lblName.setLayoutData(lblNameGD); Label lblId = new Label(newPatientGroup, SWT.NONE); lblId.setText("ID"); GridData lblIdGD = new GridData(); lblIdGD.horizontalSpan = 1; lblIdGD.verticalIndent = 5; lblId.setLayoutData(lblIdGD); textName = new Text(newPatientGroup, SWT.BORDER); GridData txtNameGD = new GridData(GridData.FILL_HORIZONTAL); txtNameGD.horizontalSpan = 3; txtNameGD.grabExcessHorizontalSpace = true; textName.setLayoutData(txtNameGD); textID = new Text(newPatientGroup, SWT.BORDER); GridData txtIDGD = new GridData(GridData.FILL_HORIZONTAL); txtIDGD.grabExcessHorizontalSpace = true; textID.setLayoutData(txtIDGD); Label lblStudyType = new Label(newPatientGroup, SWT.NONE); lblStudyType.setText("Study Type:"); GridData lblStudyTypeGD = new GridData(); lblStudyTypeGD.verticalIndent = 5; lblStudyType.setLayoutData(lblStudyTypeGD); final Combo selectStudyTypeForSearchingCombo = new Combo(newPatientGroup, SWT.READ_ONLY); GridData selectStudyTypeForSearchingComboGD = new GridData(GridData.FILL_HORIZONTAL); selectStudyTypeForSearchingComboGD.horizontalSpan = 2; selectStudyTypeForSearchingComboGD.verticalIndent = 5; selectStudyTypeForSearchingComboGD.grabExcessHorizontalSpace = true; selectStudyTypeForSearchingCombo.setLayoutData(selectStudyTypeForSearchingComboGD); final Button buttonSaveSearch = new Button(newPatientGroup, SWT.NONE); GridData buttonSaveSearchGD = new GridData(GridData.FILL_HORIZONTAL); buttonSaveSearchGD.horizontalSpan = 1; buttonSaveSearchGD.verticalIndent = 5; buttonSaveSearchGD.grabExcessHorizontalSpace = true; buttonSaveSearch.setLayoutData(buttonSaveSearchGD); buttonSaveSearch.setText("Save"); // search result components final TableViewer tableViewer = new TableViewer(newPatientGroup, SWT.BORDER | SWT.FULL_SELECTION); tableViewer.setColumnProperties(new String[] {"Name", "ID"}); Table table = tableViewer.getTable(); GridData tableGD = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL); tableGD.grabExcessHorizontalSpace = true; tableGD.horizontalSpan = 4; tableGD.verticalIndent = 10; tableGD.heightHint = 125; table.setLayoutData(tableGD); // select study combo Label lblSelectStudy = new Label(newPatientGroup, SWT.NONE); lblSelectStudy.setText("Select Study"); GridData lblSelectStudyGD = new GridData(); lblSelectStudyGD.verticalIndent = 5; lblSelectStudy.setLayoutData(lblSelectStudyGD); final ComboViewer selectStudyFromSearchResultsComboViewer = new ComboViewer(newPatientGroup, SWT.READ_ONLY); GridData selectStudyFromSearchResultsComboViewerGD = new GridData(GridData.FILL_HORIZONTAL); selectStudyFromSearchResultsComboViewerGD.horizontalSpan = 3; selectStudyFromSearchResultsComboViewerGD.verticalIndent = 5; selectStudyFromSearchResultsComboViewerGD.grabExcessHorizontalSpace = true; selectStudyFromSearchResultsComboViewer .getControl() .setLayoutData(selectStudyFromSearchResultsComboViewerGD); // select series combo Label lblSelectSeries = new Label(newPatientGroup, SWT.NONE); lblSelectSeries.setText("Select Series"); GridData lblSelectSeriesGD = new GridData(); lblSelectSeriesGD.verticalIndent = 5; lblSelectSeries.setLayoutData(lblSelectSeriesGD); final ComboViewer selectSeriesComboViewer = new ComboViewer(newPatientGroup, SWT.READ_ONLY); GridData selectSeriesComboViewerGD = new GridData(GridData.FILL_HORIZONTAL); selectSeriesComboViewerGD.horizontalSpan = 3; selectSeriesComboViewerGD.verticalIndent = 5; selectSeriesComboViewerGD.grabExcessHorizontalSpace = true; selectSeriesComboViewer.getCombo().setLayoutData(selectSeriesComboViewerGD); // new study controls Group newStudyGroup = new Group(newPatientVisitComposite, SWT.NULL); newStudyGroup.setText("New Study"); GridLayout newStudyGroupGL = new GridLayout(4, true); newStudyGroup.setLayout(newStudyGroupGL); GridData newStudyGroupGD = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL); newStudyGroupGD.verticalIndent = 10; newStudyGroup.setLayoutData(newStudyGroupGD); Label lblNewStudyName = new Label(newStudyGroup, SWT.NONE); lblNewStudyName.setText("Study Name"); GridData lblNewStudyNameGD = new GridData(); lblNewStudyNameGD.verticalIndent = 5; lblNewStudyName.setLayoutData(lblNewStudyNameGD); final Text newStudyNameText = new Text(newStudyGroup, SWT.BORDER); GridData newStudyNameTextGD = new GridData(GridData.FILL_HORIZONTAL); newStudyNameTextGD.horizontalSpan = 3; newStudyNameTextGD.verticalIndent = 5; newStudyNameTextGD.grabExcessHorizontalSpace = true; newStudyNameText.setLayoutData(newStudyNameTextGD); Label lblNewStudyType = new Label(newStudyGroup, SWT.NONE); lblNewStudyType.setText("Study Type:"); GridData lblNewStudyTypeGD = new GridData(); lblNewStudyTypeGD.verticalIndent = 5; lblNewStudyType.setLayoutData(lblNewStudyTypeGD); final Combo selectNewStudyTypeCombo = new Combo(newStudyGroup, SWT.READ_ONLY); GridData selectNewStudyTypeComboGD = new GridData(GridData.FILL_HORIZONTAL); selectNewStudyTypeComboGD.horizontalSpan = 2; selectNewStudyTypeComboGD.verticalIndent = 5; selectNewStudyTypeComboGD.grabExcessHorizontalSpace = true; selectNewStudyTypeCombo.setLayoutData(selectNewStudyTypeComboGD); final DateTime newStudyDateTimeDate = new DateTime(newStudyGroup, SWT.BORDER | SWT.DATE | SWT.DROP_DOWN); GridData dateTimeDateGD = new GridData(GridData.FILL_HORIZONTAL); dateTimeDateGD.grabExcessHorizontalSpace = true; dateTimeDateGD.verticalIndent = 5; newStudyDateTimeDate.setLayoutData(dateTimeDateGD); final Button btnSaveStudy = new Button(newStudyGroup, SWT.NONE); GridData btnSaveStudyGD = new GridData(GridData.FILL_HORIZONTAL); btnSaveStudyGD.horizontalSpan = 1; btnSaveStudyGD.verticalIndent = 5; btnSaveStudyGD.grabExcessHorizontalSpace = true; btnSaveStudy.setLayoutData(btnSaveStudyGD); btnSaveStudy.setText("Save Study"); // new series controls Group newSeriesGroup = new Group(newPatientVisitComposite, SWT.NULL); newSeriesGroup.setText("New Series"); GridLayout newSeriesGroupGL = new GridLayout(4, true); newSeriesGroup.setLayout(newSeriesGroupGL); GridData newSeriesGroupGD = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL); newSeriesGroupGD.verticalIndent = 10; newSeriesGroup.setLayoutData(newSeriesGroupGD); Label lblNewSeriesName = new Label(newSeriesGroup, SWT.NONE); lblNewSeriesName.setText("Series Name"); GridData lblNewSeriesNameGD = new GridData(); lblNewSeriesNameGD.verticalIndent = 5; lblNewSeriesName.setLayoutData(lblNewSeriesNameGD); final Text newSeriesNameText = new Text(newSeriesGroup, SWT.BORDER); GridData newSeriesNameTextGD = new GridData(GridData.FILL_HORIZONTAL); newSeriesNameTextGD.horizontalSpan = 3; newSeriesNameTextGD.verticalIndent = 5; newSeriesNameTextGD.grabExcessHorizontalSpace = true; newSeriesNameText.setLayoutData(newSeriesNameTextGD); Label lblNewSeriesTime = new Label(newSeriesGroup, SWT.NONE); lblNewSeriesTime.setText("Series Date Time"); GridData lblNewSeriesTimeGD = new GridData(); lblNewSeriesTimeGD.verticalIndent = 5; lblNewSeriesTime.setLayoutData(lblNewSeriesTimeGD); final DateTime newSeriesDateTimeDate = new DateTime(newSeriesGroup, SWT.BORDER | SWT.DATE | SWT.DROP_DOWN); GridData seriesDateGD = new GridData(); seriesDateGD.horizontalSpan = 1; // seriesDateGD.grabExcessHorizontalSpace = true; seriesDateGD.verticalIndent = 5; newSeriesDateTimeDate.setLayoutData(seriesDateGD); final DateTime newSeriesDateTimeTime = new DateTime(newSeriesGroup, SWT.BORDER | SWT.TIME | SWT.DROP_DOWN); GridData seriesTimeGD = new GridData(); seriesTimeGD.horizontalSpan = 1; // seriesTimeGD.grabExcessHorizontalSpace = true; seriesTimeGD.verticalIndent = 5; newSeriesDateTimeTime.setLayoutData(seriesTimeGD); Label placeHolder = new Label(newSeriesGroup, SWT.NONE); GridData placeHolderGD = new GridData(GridData.FILL_HORIZONTAL); placeHolderGD.horizontalSpan = 1; placeHolderGD.grabExcessHorizontalSpace = true; placeHolder.setLayoutData(placeHolderGD); Label lblNewSeriesDescription = new Label(newSeriesGroup, SWT.NONE); lblNewSeriesDescription.setText("Series Description"); GridData lblNewSeriesDescriptionGD = new GridData(); lblNewSeriesDescriptionGD.grabExcessVerticalSpace = true; lblNewSeriesDescriptionGD.verticalSpan = 15; lblNewSeriesDescriptionGD.verticalAlignment = SWT.BEGINNING; lblNewSeriesDescriptionGD.verticalIndent = 5; lblNewSeriesDescription.setLayoutData(lblNewSeriesDescriptionGD); final Text newSeriesNameDescription = new Text(newSeriesGroup, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI); GridData newSeriesNameDescriptionGD = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL); newSeriesNameDescriptionGD.horizontalSpan = 3; newSeriesNameDescriptionGD.verticalIndent = 5; newSeriesNameDescriptionGD.verticalSpan = 15; newSeriesNameDescriptionGD.grabExcessHorizontalSpace = true; newSeriesNameDescription.setLayoutData(newSeriesNameDescriptionGD); Label lblPhotosLocation = new Label(newSeriesGroup, SWT.NONE); lblPhotosLocation.setText("Photos Location"); GridData lblPhotosLocationGD = new GridData(); lblPhotosLocationGD.horizontalSpan = 1; lblPhotosLocationGD.verticalIndent = 5; lblPhotosLocation.setLayoutData(lblPhotosLocationGD); final Text textPhotosLocation = new Text(newSeriesGroup, SWT.BORDER); GridData textPhotosLocationGD = new GridData(GridData.FILL_HORIZONTAL); textPhotosLocationGD.horizontalSpan = 1; textPhotosLocationGD.verticalIndent = 5; textPhotosLocationGD.grabExcessHorizontalSpace = true; textPhotosLocation.setLayoutData(textPhotosLocationGD); final Button buttonBrowse = new Button(newSeriesGroup, SWT.NONE); GridData btnBrowseGD = new GridData(GridData.FILL_HORIZONTAL); btnBrowseGD.horizontalSpan = 1; btnBrowseGD.verticalIndent = 5; btnBrowseGD.grabExcessHorizontalSpace = true; buttonBrowse.setLayoutData(btnBrowseGD); buttonBrowse.setText("Browse"); final Button buttonLoad = new Button(newSeriesGroup, SWT.NONE); GridData btnLoadGD = new GridData(GridData.FILL_HORIZONTAL); btnLoadGD.horizontalSpan = 1; btnLoadGD.verticalIndent = 5; btnLoadGD.grabExcessHorizontalSpace = true; buttonLoad.setLayoutData(btnLoadGD); buttonLoad.setText("Load"); final Button buttnoSaveSeries = new Button(newSeriesGroup, SWT.NONE); GridData btnSaveSeriesGD = new GridData(GridData.FILL_HORIZONTAL); btnSaveSeriesGD.horizontalSpan = 1; btnSaveSeriesGD.verticalIndent = 5; btnSaveSeriesGD.grabExcessHorizontalSpace = true; buttnoSaveSeries.setLayoutData(btnSaveSeriesGD); buttnoSaveSeries.setText("Save Series"); // set defaults radioButtonNewPatient.setSelection(true); selectStudyTypeForSearchingCombo.setEnabled(false); tableViewer.getTable().setEnabled(false); selectStudyFromSearchResultsComboViewer.getControl().setEnabled(false); selectSeriesComboViewer.getControl().setEnabled(false); // set size Point size = newPatientVisitComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT); scrolledComposite.setMinSize(size); scrolledComposite.setContent(newPatientVisitComposite); scrolledComposite.layout(true); scrolledComposite.addListener( SWT.Activate, new Listener() { public void handleEvent(Event e) { scrolledComposite.setFocus(); } }); final IPatientService pService = (IPatientService) PlatformUI.getWorkbench().getService(IPatientService.class); // browse button clicked buttonBrowse.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { final FileDialog dialog = new FileDialog(getSite().getShell(), SWT.OPEN | SWT.MULTI); final String lastSelectedFilePath = dialog.open(); // create the structure for files Display.getDefault() .asyncExec( new Runnable() { @Override public void run() { String[] selectedFileNames = dialog.getFileNames(); if (selectedFileNames != null && selectedFileNames.length > 0) { textPhotosLocation.setText(lastSelectedFilePath); String dirName = lastSelectedFilePath.substring( 0, lastSelectedFilePath.lastIndexOf(File.separator) + 1); if (loadedPhotosList != null) { loadedPhotosList.clear(); } else { loadedPhotosList = new ArrayList<String>(); } for (String selectedFileName : selectedFileNames) { loadedPhotosList.add(dirName.concat(selectedFileName)); } } } }); } }); // load button clicked buttonLoad.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { loadPhotos(); } }); // save radio selected radioButtonNewPatient.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { selectStudyTypeForSearchingCombo.setEnabled(false); tableViewer.getTable().setEnabled(false); selectStudyFromSearchResultsComboViewer.getControl().setEnabled(false); selectSeriesComboViewer.getControl().setEnabled(false); buttonSaveSearch.setText("Save"); } }); // search radio selected radioButtonSearch.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { selectStudyTypeForSearchingCombo.setEnabled(true); tableViewer.getTable().setEnabled(true); selectStudyFromSearchResultsComboViewer.getControl().setEnabled(true); selectSeriesComboViewer.getControl().setEnabled(true); buttonSaveSearch.setText("Search"); } }); buttonSaveSearch.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (buttonSaveSearch.getText().equals("Save")) { String newPatientName = textName.getText(); String ID = textID.getText(); if (newPatientName == null || "".equals(newPatientName)) { Util.showMessage("Name can't be empty!"); return; } if (ID == null || "".equals(ID)) { ID = String.valueOf(UUID.randomUUID().getMostSignificantBits()); } IPatient newPatient = PatientFactory.getInstance().create(ID, newPatientName, null); // IPatientService pservice = Activator.getDefault().getPatientService(); if (pService != null) { IStatus status = null; try { status = pService.saveNewPatient(newPatient); } catch (IOException e1) { e1.printStackTrace(); } if (status == Status.OK_STATUS) { // StatusLineContribution slc = (StatusLineContribution) // Activator.getDefault().getStatusItem(); // slc.setText("Active Patient : " + newPatient.getName()); // slc.setVisible(true); updateStatus("Active Patient : " + newPatient.getName()); activePatient = newPatient; textName.setText(""); textID.setText(""); } else { // XXX log } } else { Util.showMessage("Patient service is null :-("); } } else { String searchName = textName.getText(); String searchID = textID.getText(); // IPatientService pService = Activator.getDefault().getPatientService(); try { List<IPatient> patientSearchResults = pService.searchPatients(searchName, searchID); if (patientSearchResults != null) { tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.getTable().setLinesVisible(true); tableViewer.getTable().setHeaderVisible(true); // create columns createPatientColumns(tableViewer); // set input tableViewer.setInput(patientSearchResults); tableViewer.refresh(); } else { // XXX log and inform user null was returned } } catch (Exception e1) { // StatusLineContribution slc = (StatusLineContribution) // Activator.getDefault().getStatusItem(); // slc.setText("Active Patient : " + e1.getMessage()); // slc.setVisible(true); updateStatus("Active Patient : " + e1.getMessage()); } } } }); btnSaveStudy.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStudy newStudy = StudyFactory.getInstance().create(null); newStudy.setStudyName(newStudyNameText.getText()); // get selected date for new study Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_MONTH, newStudyDateTimeDate.getDay()); calendar.set(Calendar.MONTH, newStudyDateTimeDate.getMonth()); calendar.set(Calendar.YEAR, newStudyDateTimeDate.getYear()); Date studyDate = calendar.getTime(); newStudy.setStudyDate(studyDate); newStudy.setStudyType(selectNewStudyTypeCombo.getText()); newStudy.setPatientID(activePatient.getId()); newStudy.setNumberOfSeries((Integer) 0); newStudy.setStudyID(String.valueOf(UUID.randomUUID().getLeastSignificantBits())); // IPatientService pService = Activator.getDefault().getPatientService(); IStatus status = null; try { status = pService.saveNewStudy(newStudy); } catch (IOException e1) { e1.printStackTrace(); } if (status == Status.OK_STATUS) { activeStudy = newStudy; String statusLineText = "Active Patient : " + activePatient.getName() + " Active Study : " + activeStudy.toString(); updateStatus(statusLineText); // StatusLineContribution slc = (StatusLineContribution) // Activator.getDefault().getStatusItem(); // slc.setText(statusLineText); // slc.setVisible(true); newStudyNameText.setText(""); selectNewStudyTypeCombo.clearSelection(); } else { // XXX log } } }); buttnoSaveSeries.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ISeries newSeries = SeriesFactory.getInstance().create(null); newSeries.setSeriesName(newSeriesNameText.getText()); newSeries.setNotes(newSeriesNameDescription.getText()); newSeries.setParentStudyID(""); newSeries.setPhotos(selectedPhotosFilesList); newSeries.setSeriesID(String.valueOf(UUID.randomUUID().getMostSignificantBits())); newSeries.setParentStudyID(activeStudy.getStudyID()); // get selected date for new study Calendar calendar = Calendar.getInstance(); // calendar.set(Calendar.DAY_OF_MONTH, newSeriesDateTimeTime.getDay()); // calendar.set(Calendar.MONTH, newSeriesDateTimeTime.getMonth()); // calendar.set(Calendar.YEAR, newSeriesDateTimeTime.getYear()); calendar.set(Calendar.DAY_OF_MONTH, newSeriesDateTimeDate.getDay()); calendar.set(Calendar.MONTH, newSeriesDateTimeDate.getMonth()); calendar.set(Calendar.YEAR, newSeriesDateTimeDate.getYear()); calendar.set(Calendar.HOUR_OF_DAY, newSeriesDateTimeTime.getHours()); calendar.set(Calendar.MINUTE, newSeriesDateTimeTime.getMinutes()); calendar.set(Calendar.SECOND, newSeriesDateTimeTime.getSeconds()); newSeries.setSeriesTime(calendar.getTime()); // IPatientService pService = Activator.getDefault().getPatientService(); IStatus status = null; try { status = pService.saveNewSeries(newSeries); } catch (IOException e1) { e1.printStackTrace(); } if (status == Status.OK_STATUS) { // clear UI fileds newSeriesNameText.setText(""); newSeriesNameDescription.setText(""); textPhotosLocation.setText(""); } else { // XXX log } }; }); tableViewer .getTable() .addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { StructuredSelection selection = (StructuredSelection) tableViewer.getSelection(); if (selection.getFirstElement() instanceof IPatient) { IPatient selectedPatient = (IPatient) selection.getFirstElement(); activePatient = selectedPatient; // StatusLineContribution slc = (StatusLineContribution) // Activator.getDefault().getStatusItem(); // slc.setText("Active Patient : " + activePatient.getName()); // slc.setVisible(true); updateStatus("Active Patient : " + activePatient.getName()); selectSeriesComboViewer.getCombo().clearSelection(); selectSeriesComboViewer.getCombo().removeAll(); // get all studies of this patient // IPatientService pService = Activator.getDefault().getPatientService(); try { List<IStudy> studiesForSelectedpatient = pService.getStudiesForPatient(selectedPatient); selectStudyFromSearchResultsComboViewer.setContentProvider( ArrayContentProvider.getInstance()); selectStudyFromSearchResultsComboViewer.setLabelProvider( new LabelProvider() { public String getText(Object element) { return ((IStudy) element).toString(); }; }); selectStudyFromSearchResultsComboViewer.setInput(studiesForSelectedpatient); } catch (Exception e1) { updateStatus(e1.getMessage()); // slc.setText(e1.getMessage()); // slc.setVisible(true); } } } }); selectStudyFromSearchResultsComboViewer .getCombo() .addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { StructuredSelection selection = (StructuredSelection) selectStudyFromSearchResultsComboViewer.getSelection(); if (selection.getFirstElement() instanceof IStudy) { IStudy selectedStudy = (IStudy) selection.getFirstElement(); activeStudy = selectedStudy; // StatusLineContribution slc = (StatusLineContribution) // Activator.getDefault().getStatusItem(); // slc.setText("Active Patient : " + activePatient.getName() + // " Active Study : " + activeStudy.toString()); // slc.setVisible(true); updateStatus( "Active Patient : " + activePatient.getName() + " Active Study : " + activeStudy.toString()); // get all series for this study // IPatientService pService = Activator.getDefault().getPatientService(); try { List<ISeries> seriesForSelectedStudy = pService.getSeriesForStudy(selectedStudy); selectSeriesComboViewer.setContentProvider(ArrayContentProvider.getInstance()); selectSeriesComboViewer.setLabelProvider( new LabelProvider() { public String getText(Object element) { return ((ISeries) element).toString(); }; }); selectSeriesComboViewer.setInput(seriesForSelectedStudy); selectSeriesComboViewer.refresh(); } catch (Exception e1) { // slc.setText(e1.getMessage()); updateStatus(e1.getMessage()); } } } }); selectSeriesComboViewer .getCombo() .addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { StructuredSelection selection = (StructuredSelection) selectSeriesComboViewer.getSelection(); if (selection.getFirstElement() instanceof ISeries) { ISeries selectedSeries = (ISeries) selection.getFirstElement(); if (loadedPhotosList != null) { loadedPhotosList.clear(); } else { loadedPhotosList = new ArrayList<String>(); } // load photos for selected series for (Object selectedFileName : selectedSeries.getPhotos()) { loadedPhotosList.add(selectedFileName.toString()); } loadPhotos(); } } }); }
@Override protected Control createDialogArea(Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; gridLayout.horizontalSpacing = 0; gridLayout.verticalSpacing = 5; gridLayout.marginWidth = 0; gridLayout.marginHeight = 0; composite.setLayout(gridLayout); Composite repoPart = new Composite(composite, SWT.NONE); gridLayout = new GridLayout(); gridLayout.numColumns = 2; gridLayout.horizontalSpacing = 0; gridLayout.verticalSpacing = 5; gridLayout.marginWidth = 0; gridLayout.marginHeight = 5; repoPart.setLayout(gridLayout); GridData gd = new GridData(); repoPart.setLayoutData(gd); Label label = new Label(repoPart, SWT.NONE); label.setText(Messages.releaseToRepo); String[] items = ReleaseHelper.getReleaseRepositories(); String defaultRepo = project.getProperty(Constants.RELEASEREPO); int idx = 0; for (int i = 0; i < items.length; i++) { if (defaultRepo != null) { if (items[i].equals(defaultRepo)) { idx = i; break; } } } releaseRepoCombo = new Combo(repoPart, SWT.READ_ONLY); // combo.setLayout(gridLayout); releaseRepoCombo.setItems(items); releaseRepoCombo.setSize(200, 200); if (items.length > 0) { releaseRepoCombo.setText(items[idx]); } else { releaseRepoCombo.setText(""); } Composite diffPart = new Composite(composite, SWT.NONE); gridLayout = new GridLayout(); gridLayout.numColumns = 1; gridLayout.horizontalSpacing = 0; gridLayout.verticalSpacing = 5; gridLayout.marginWidth = 0; gridLayout.marginHeight = 0; diffPart.setLayout(gridLayout); diffPart.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); ScrolledComposite scrolled = new ScrolledComposite(diffPart, SWT.H_SCROLL | SWT.V_SCROLL); gridLayout = new GridLayout(); gridLayout.numColumns = 2; gridLayout.horizontalSpacing = 0; gridLayout.verticalSpacing = 5; gridLayout.marginWidth = 10; gridLayout.marginHeight = 10; scrolled.setLayout(gridLayout); scrolled.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); release.createControl(scrolled); scrolled.setExpandHorizontal(true); scrolled.setExpandVertical(true); scrolled.setContent(release.getControl()); scrolled.setMinSize(300, 300); scrolled.layout(true); return composite; }