/** * Initialize default fonts. Causes this to re-read font preferences from the preference store. * Calling this method should only be necessary if font preferences have changed, or if the font * preference keys have changed. * * @since 1.3 * @see #getFontPreference() * @see #getMonospaceFontPreference() */ public void initializeDefaultFonts() { Font defaultFont = null; Font defaultMonospaceFont = null; if (WikiTextUiPlugin.getDefault() != null) { IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager(); FontRegistry fontRegistry = themeManager.getCurrentTheme().getFontRegistry(); defaultFont = fontRegistry.get(fontPreference); defaultMonospaceFont = fontRegistry.get(monospaceFontPreference); } if (defaultFont == null) { // could be the case when running stand-alone defaultFont = JFaceResources.getDefaultFont(); } if (this.defaultFont != defaultFont || this.defaultMonospaceFont != defaultMonospaceFont) { this.defaultFont = defaultFont; this.defaultMonospaceFont = defaultMonospaceFont; if (scanner != null) { scanner.resetFonts(defaultFont, defaultMonospaceFont); } } }
@Override public void createPartControl(Composite parent) { shell = parent.getShell(); FontRegistry fontRegistry = new FontRegistry(parent.getShell().getDisplay()); fontRegistry.put( "TC", new FontData[] {new FontData("Arial", 10, SWT.BOLD)}); // $NON-NLS-1$ //$NON-NLS-2$ final Composite comp = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(2, true); layout.horizontalSpacing = 5; layout.verticalSpacing = 5; layout.marginHeight = 5; layout.marginWidth = 5; comp.setLayout(layout); GridData gd; terminoConceptText = new Text(comp, SWT.BORDER | SWT.CENTER | SWT.READ_ONLY); terminoConceptText.setEditable(false); terminoConceptText.setFont(fontRegistry.get("TC")); // $NON-NLS-1$ gd = new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1); terminoConceptText.setLayoutData(gd); // terminologic composite Composite terminoComposite = new Composite(comp, SWT.NONE); layout = new GridLayout(1, true); gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); terminoComposite.setLayout(layout); terminoComposite.setLayoutData(gd); terminoComposite.setBackground(terminologicColor); // terms in current language currentLanguageTerms = new Composite(terminoComposite, SWT.NONE); layout = new GridLayout(2, false); gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); currentLanguageTerms.setLayout(layout); currentLanguageTerms.setLayoutData(gd); termsTableViewer = new TableViewer( currentLanguageTerms, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1); termsTableViewer.getTable().setLayoutData(gridData); termsTableViewer.getTable().setLinesVisible(true); termsTableViewer.getTable().setHeaderVisible(true); termsTableViewer.setContentProvider(new TermContentProvider()); termsTableViewer.setSorter(new TermsTableViewerSorter()); // Columns termColumn = new TableViewerColumn(termsTableViewer, SWT.NONE, 0); termColumn.getColumn().setText(Messages.getString("TerminologicalViewPart.13")); // $NON-NLS-1$ termColumn.setLabelProvider(new TermLabelProvider()); termColumn.getColumn().setAlignment(SWT.CENTER); termColumn .getColumn() .addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TermsTableViewerSorter sorter = new TermsTableViewerSorter(); termsTableViewer.setSorter(sorter); termsTableViewer.getTable().setSortColumn(termColumn.getColumn()); termsTableViewer.getTable().setSortDirection(directionTerm); } }); languageColumn = new TableViewerColumn(termsTableViewer, SWT.CENTER, 1); languageColumn .getColumn() .setText(Messages.getString("TerminologicalViewPart.14")); // $NON-NLS-1$ languageColumn.getColumn().setAlignment(SWT.CENTER); languageColumn.setLabelProvider(new DefaultLanguageLabelProvider()); currentLanguageTerms.addControlListener( new ControlAdapter() { public void controlResized(ControlEvent e) { Rectangle area = currentLanguageTerms.getClientArea(); Point preferredSize = termsTableViewer.getTable().computeSize(SWT.DEFAULT, SWT.DEFAULT); int width = area.width - 2 * termsTableViewer.getTable().getBorderWidth(); if (preferredSize.y > area.height + termsTableViewer.getTable().getHeaderHeight()) { Point vBarSize = termsTableViewer.getTable().getVerticalBar().getSize(); width -= vBarSize.x; } Point oldSize = termsTableViewer.getTable().getSize(); if (oldSize.x > area.width) { termColumn.getColumn().setWidth(width * 80 / 100); languageColumn.getColumn().setWidth(width * 20 / 100); termsTableViewer.getTable().setSize(area.width, area.height); } else { termsTableViewer.getTable().setSize(area.width, area.height); termColumn.getColumn().setWidth(width * 80 / 100); languageColumn.getColumn().setWidth(width * 20 / 100); } } }); Button addTermCurrentLg = new Button(currentLanguageTerms, SWT.PUSH); String imageId = org.dafoe.terminoontologiclevel.ui.Activator.NEW_IMG_ID; ImageDescriptor imgDesc = org.dafoe.terminoontologiclevel.ui.Activator.getDefault() .getImageRegistry() .getDescriptor(imageId); Image image = imgDesc.createImage(); addTermCurrentLg.setImage(image); addTermCurrentLg.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false)); addTermCurrentLg.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { addTerm(); } }); Button removeTermCurrentLg = new Button(currentLanguageTerms, SWT.PUSH); imageId = org.dafoe.terminoontologiclevel.ui.Activator.REMOVE_IMG_ID; imgDesc = org.dafoe.terminoontologiclevel.ui.Activator.getDefault() .getImageRegistry() .getDescriptor(imageId); image = imgDesc.createImage(); removeTermCurrentLg.setImage(image); removeTermCurrentLg.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false)); removeTermCurrentLg.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { removeTerm(); } }); // Sentences sentencesWidget = new SentenceWidget(comp, SWT.NONE); layout = new GridLayout(1, false); gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); sentencesWidget.setLayout(layout); sentencesWidget.setLayoutData(gd); sentencesWidget.setDeletionEventType(TerminologicalViewPart.SENTENCE_DELETED); sentencesWidget.addPropertyChangeListener(new SentenceDeletedChangeListener()); // terms in other languages otherLanguageTerms = new Composite(terminoComposite, SWT.NONE); layout = new GridLayout(2, false); gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); otherLanguageTerms.setLayout(layout); otherLanguageTerms.setLayoutData(gd); termsOtherLgTableViewer = new TableViewer( otherLanguageTerms, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1); termsOtherLgTableViewer.getTable().setLayoutData(gridData); termsOtherLgTableViewer.getTable().setLinesVisible(true); termsOtherLgTableViewer.getTable().setHeaderVisible(true); termsOtherLgTableViewer.setContentProvider(new TranslatedTermContentProvider()); // Columns termLgColumn = new TableViewerColumn(termsOtherLgTableViewer, SWT.NONE, 0); termLgColumn .getColumn() .setText(Messages.getString("TerminologicalViewPart.17")); // $NON-NLS-1$ termLgColumn.setLabelProvider(new TranslatedTermLabelProvider()); termLgColumn .getColumn() .addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TanslatedTermsTableViewerSorter sorter = new TanslatedTermsTableViewerSorter(TanslatedTermsTableViewerSorter.TERM_SORT); termsOtherLgTableViewer.setSorter(sorter); termsOtherLgTableViewer.getTable().setSortColumn(termLgColumn.getColumn()); termsOtherLgTableViewer.getTable().setSortDirection(directionTransTerm); } }); languagesColumn = new TableViewerColumn(termsOtherLgTableViewer, SWT.NONE, 1); languagesColumn .getColumn() .setText(Messages.getString("TerminologicalViewPart.18")); // $NON-NLS-1$ languagesColumn.setLabelProvider(new OtherLanguageLabelProvider()); languagesColumn .getColumn() .addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TanslatedTermsTableViewerSorter sorter = new TanslatedTermsTableViewerSorter(TanslatedTermsTableViewerSorter.FLAG_SORT); termsOtherLgTableViewer.setSorter(sorter); termsOtherLgTableViewer.getTable().setSortColumn(languagesColumn.getColumn()); termsOtherLgTableViewer.getTable().setSortDirection(directionTransTerm); } }); otherLanguageTerms.addControlListener( new ControlAdapter() { public void controlResized(ControlEvent e) { Rectangle area = otherLanguageTerms.getClientArea(); Point preferredSize = termsOtherLgTableViewer.getTable().computeSize(SWT.DEFAULT, SWT.DEFAULT); int width = area.width - 2 * termsOtherLgTableViewer.getTable().getBorderWidth(); if (preferredSize.y > area.height + termsOtherLgTableViewer.getTable().getHeaderHeight()) { Point vBarSize = termsOtherLgTableViewer.getTable().getVerticalBar().getSize(); width -= vBarSize.x; } Point oldSize = termsOtherLgTableViewer.getTable().getSize(); if (oldSize.x > area.width) { termLgColumn.getColumn().setWidth(width * 80 / 100); languagesColumn.getColumn().setWidth(width * 20 / 100); termsOtherLgTableViewer.getTable().setSize(area.width, area.height); } else { termsOtherLgTableViewer.getTable().setSize(area.width, area.height); termLgColumn.getColumn().setWidth(width * 80 / 100); languagesColumn.getColumn().setWidth(width * 20 / 100); } } }); Button addTermOtherLg = new Button(otherLanguageTerms, SWT.PUSH); imageId = org.dafoe.terminoontologiclevel.ui.Activator.NEW_IMG_ID; imgDesc = org.dafoe.terminoontologiclevel.ui.Activator.getDefault() .getImageRegistry() .getDescriptor(imageId); image = imgDesc.createImage(); addTermOtherLg.setImage(image); addTermOtherLg.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false)); addTermOtherLg.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { addTranslatedTerm(); } }); Button removeTermOtherLg = new Button(otherLanguageTerms, SWT.PUSH); imageId = org.dafoe.terminoontologiclevel.ui.Activator.REMOVE_IMG_ID; imgDesc = org.dafoe.terminoontologiclevel.ui.Activator.getDefault() .getImageRegistry() .getDescriptor(imageId); image = imgDesc.createImage(); removeTermOtherLg.setImage(image); removeTermOtherLg.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false)); removeTermOtherLg.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { removeTranslatedTerm(); } }); // ControlerFactoryImpl.getTerminoOntoControler() .addPropertyChangeListener( ControlerFactoryImpl.currentTerminoConceptEvent, new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { updateInformation(); } }); ControlerFactoryImpl.getTerminoOntoControler() .addPropertyChangeListener( ControlerFactoryImpl.renameTCEvent, new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { updateInformation(); } }); makeActions(); hookPopupMenus(); updateInformation(); }
private void createContent() { GridData gridData; Composite composite = new Composite(this, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); composite.setLayout(new GridLayout(3, false)); FontRegistry fontRegistry = new FontRegistry(shell.getDisplay()); fontRegistry.put( "WidgetTitle", new FontData[] {new FontData("Arial", 10, SWT.BOLD)}); // $NON-NLS-1$ //$NON-NLS-2$ Label label = new Label(composite, SWT.NONE); label.setFont(fontRegistry.get("WidgetTitle")); // $NON-NLS-1$ label.setText(Messages.getString("RTCTypeToRTTypeWidget.3")); // $NON-NLS-1$ gridData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 3, 1); label.setLayoutData(gridData); Label titleBarSeparator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR); titleBarSeparator.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1)); Label currentTerminoRelationTypeLabel = new Label(composite, SWT.NONE); currentTerminoRelationTypeLabel.setText( Messages.getString("RTCTypeToRTTypeWidget.4") + " :"); // $NON-NLS-1$ //$NON-NLS-2$ currentTerminoRelationTypeText = new Text(composite, SWT.SINGLE | SWT.BORDER); currentTerminoRelationTypeText.setLayoutData( new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); Label associatedTypeLabel = new Label(composite, SWT.NONE); associatedTypeLabel.setLayoutData( new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false, 1, 2)); associatedTypeLabel.setText( Messages.getString("RTCTypeToRTTypeWidget.6") + " :"); // $NON-NLS-1$ //$NON-NLS-2$ rtTypeListViewer = new ListViewer(composite, SWT.BORDER | SWT.V_SCROLL); rtTypeListViewer.setContentProvider(new RTTypeContentProvider()); rtTypeListViewer.setLabelProvider(new RTLabelProvider()); gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2); gridData.heightHint = 100; rtTypeListViewer.getList().setLayoutData(gridData); rtTypeListViewer.addSelectionChangedListener( new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() != null) { unlinkAction.setEnabled(true); currentRTType = (ITypeRelationTermino) selection.getFirstElement(); propertyChangeSupport.firePropertyChange( rtTypeSelectionEventType, null, currentRTType); } else { unlinkAction.setEnabled(false); } } }); Label newRTTypeLabel = new Label(composite, SWT.NONE); gridData = new GridData(); gridData.verticalAlignment = SWT.CENTER; newRTTypeLabel.setLayoutData(gridData); newRTTypeLabel.setText( Messages.getString("RTCTypeToRTTypeWidget.8") + " :"); // $NON-NLS-1$ //$NON-NLS-2$ newRTTypeText = new Text(composite, SWT.SINGLE | SWT.BORDER | SWT.WRAP); gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.widthHint = 150; gridData.grabExcessHorizontalSpace = true; newRTTypeText.setLayoutData(gridData); Button newRTTypeButton = new Button(composite, SWT.NONE); String imageId = org.dafoe.terminologiclevel.Activator.NEW_IMG_ID; ImageDescriptor imgDesc = org.dafoe.terminologiclevel.Activator.getDefault() .getImageRegistry() .getDescriptor(imageId); Image imageAdd = imgDesc.createImage(); newRTTypeButton.setImage(imageAdd); newRTTypeButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false)); newRTTypeButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { String newRTTypeLabel = newRTTypeText.getText().trim(); ; if (newRTTypeLabel.compareTo("") != 0) { // $NON-NLS-1$ ITypeRelationTermino testRTType = DatabaseAdapter.getRTTypeByLabel(newRTTypeLabel); // there isn't another RT type with the same label if (testRTType == null) { ITypeRelationTermino newRTType = DatabaseAdapter.createRelationType(newRTTypeLabel); org.dafoe.terminoontologiclevel.common.DatabaseAdapter.linkRTCTypeWithRTType( currentRTCType, newRTType); newRTTypeText.setText(""); // $NON-NLS-1$ updateContent(currentRTCType); propertyChangeSupport.firePropertyChange(newRTEventType, null, newRTType); } else { String msg = Messages.getString("RTCTypeToRTTypeWidget.12") + newRTTypeLabel + Messages.getString( "RTCTypeToRTTypeWidget.13"); //$NON-NLS-1$ //$NON-NLS-2$ msg += Messages.getString("RTCTypeToRTTypeWidget.14"); // $NON-NLS-1$ MessageDialog.openWarning( shell, Messages.getString("RTCTypeToRTTypeWidget.15"), msg); // $NON-NLS-1$ newRTTypeText.selectAll(); } } } }); composite.addListener( SWT.Resize, new Listener() { public void handleEvent(Event event) { Rectangle rect = RTCTypeToRTTypeWidget.this.getClientArea(); Image newImage = new Image(shell.getDisplay(), Math.max(1, rect.width), 1); GC gc = new GC(newImage); gc.setForeground(terminologic_level_color); gc.setBackground(terminoontologic_level_color); gc.fillGradientRectangle(rect.x, rect.y, rect.width, 1, false); gc.dispose(); RTCTypeToRTTypeWidget.this.setBackgroundImage(newImage); if (oldImage != null) { oldImage.dispose(); } oldImage = newImage; } }); makeActions(); hookPopupMenu(); }