From: p.ciardelli Date: Fri, 6 Feb 2009 16:17:24 +0000 (+0000) Subject: Halfway through refactoring upwards from NameComposite, DescriptionElementComposite... X-Git-Tag: rcp.ss-first-working-version~936 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/a3a2cedd3ff55111771df3e9bd2e8859d7ba377a Halfway through refactoring upwards from NameComposite, DescriptionElementComposite, and DescriptionLabelComposite into GroupedComposite. --- diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java index ca1ad9b1f..6ed64795d 100644 --- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java +++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java @@ -37,6 +37,7 @@ import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.taxeditor.ITaxEditorConstants; import eu.etaxonomy.taxeditor.TaxEditorPlugin; import eu.etaxonomy.taxeditor.actions.WidgetTransfer; +import eu.etaxonomy.taxeditor.editor.name.NameViewer; /** * Formats GroupedComposite with cosmetic and layout properties specific to the @@ -62,7 +63,7 @@ import eu.etaxonomy.taxeditor.actions.WidgetTransfer; abstract public class GroupedComposite extends Composite implements IHasPropertySource { private static final Logger logger = Logger.getLogger(GroupedComposite.class); - protected TextViewer textViewer; + protected NameViewer textViewer; private Label draggableLabel; protected IManagedForm managedForm; protected Taxon taxon; @@ -86,29 +87,27 @@ abstract public class GroupedComposite extends Composite implements IHasProperty taxon = (Taxon) formData; } - /** - * - */ protected void createLineWrapSupport() { - new LineWrapSupport(getTextViewer(), managedForm); +// logger.warn("LineWrapSupport not yet implemented - might never be."); + if (textViewer instanceof NameViewer) { + new LineWrapSupport(textViewer, managedForm); + } else { + logger.warn("Can't create line wrap support because textViewert has not been initialized."); + } } - + protected void createContent() { setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); TableWrapLayout layout = new TableWrapLayout(); - layout.numColumns = 2; layout.leftMargin = 0; + layout.topMargin = 0; + layout.bottomMargin = 0; + layout.verticalSpacing = 0; setLayout(layout); Color groupBackgroundColor = TaxEditorPlugin.getDefault(). getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR); - setBackground(groupBackgroundColor); - - draggableLabel = new Label(this, SWT.NONE); - draggableLabel.setBackground(groupBackgroundColor); - draggableLabel.setLayoutData(new TableWrapData(TableWrapData.CENTER, TableWrapData.TOP)); - - setDraggableControl(draggableLabel); + setBackground(groupBackgroundColor); } public Taxon getTaxon() { @@ -125,23 +124,27 @@ abstract public class GroupedComposite extends Composite implements IHasProperty /** * @param textViewer */ - public void setTextViewer(TextViewer textViewer) { + public void setTextViewer(NameViewer textViewer) { this.textViewer = textViewer; } - - public void setText(String text) { - Assert.isNotNull(getTextViewer(), - "Cannot set text for a TextViewer that has not yet been initialized."); - Assert.isNotNull(getTextViewer().getDocument(), - "Cannot set text for a TextViewer whose Document has not yet been initialized."); - getTextViewer().getDocument().set(text); - } +// +// public void setText(String text) { +// Assert.isNotNull(getTextViewer(), +// "Cannot set text for a TextViewer that has not yet been initialized."); +// Assert.isNotNull(getTextViewer().getDocument(), +// "Cannot set text for a TextViewer whose Document has not yet been initialized."); +// getTextViewer().getDocument().set(text); +// } /** * @param icon */ public void setIcon(Image icon) { - draggableLabel.setImage(icon); + if (textViewer instanceof NameViewer) { + textViewer.setIcon(icon); + } else { + logger.warn("Can't set icon because textViewert has not been initialized."); + } } /** @@ -183,7 +186,11 @@ abstract public class GroupedComposite extends Composite implements IHasProperty * @see org.eclipse.swt.widgets.Control#setFont(org.eclipse.swt.graphics.Font) */ public void setFont(Font font) { - getTextViewer().getTextWidget().setFont(font); + if (textViewer != null) { + textViewer.getTextWidget().setFont(font); + } else { + logger.warn("Can't set font because textViewer has not been initalized."); + } } FocusListener focusListener; @@ -196,11 +203,11 @@ abstract public class GroupedComposite extends Composite implements IHasProperty * @param prompt */ public void createEmptyViewerPrompt(final String prompt) { - Assert.isNotNull(getTextViewer()); + Assert.isNotNull(textViewer); // new EmptyTextViewerPrompt(getTextViewer(), prompt); - final StyledText textControl = getTextViewer().getTextWidget(); - final IDocument document = getTextViewer().getDocument(); + final StyledText textControl = textViewer.getTextWidget(); + final IDocument document = textViewer.getDocument(); final Font promptFont = TaxEditorPlugin.getDefault() .getFont(ITaxEditorConstants.DEFAULT_PROMPT_FONT); setFocusListener(new FocusListener() { @@ -232,11 +239,11 @@ abstract public class GroupedComposite extends Composite implements IHasProperty abstract protected Font getViewerFont(); protected void initEmptyText() { - getTextViewer().getTextWidget().setFont( + textViewer.getTextWidget().setFont( TaxEditorPlugin.getDefault() .getFont(ITaxEditorConstants.DEFAULT_PROMPT_FONT)); - getTextViewer().getDocument().set(getEmptyTextPrompt()); + textViewer.getDocument().set(getEmptyTextPrompt()); } protected String getEmptyTextPrompt() { @@ -258,14 +265,14 @@ abstract public class GroupedComposite extends Composite implements IHasProperty // borderDecorator = new CompositeBorderDecorator( // this, managedForm); - if (getTextViewer() == null) { + if (textViewer == null) { logger.warn("Could not create border support - getTextViewer() returned null."); } else { borderDecorator = new CompositeBorderDecorator( - getTextViewer().getTextWidget(), managedForm); + textViewer.getTextWidget(), managedForm); // borderDecorator.setBorderedComposite(getTextViewer().getTextWidget()); borderDecorator.setLoseFocus(false); - getTextViewer().getTextWidget().addFocusListener(borderDecorator); + textViewer.getTextWidget().addFocusListener(borderDecorator); } } @@ -340,8 +347,8 @@ abstract public class GroupedComposite extends Composite implements IHasProperty DragSourceListener dragSourceListener = new DragSourceAdapter() { public void dragStart(DragSourceEvent event) { - if (getTextViewer() != null) { - getTextViewer().getTextWidget().setFocus(); + if (textViewer != null) { + textViewer.getTextWidget().setFocus(); } event.doit = true; } @@ -361,11 +368,11 @@ abstract public class GroupedComposite extends Composite implements IHasProperty dragSource.dispose(); } - if (getFocusListener() != null && getTextViewer() != null - && getTextViewer().getTextWidget() != null) { - getTextViewer().getTextWidget().removeFocusListener(getFocusListener()); - getTextViewer().getTextWidget().removeFocusListener(borderDecorator); - getTextViewer().getTextWidget().dispose(); + if (getFocusListener() != null && textViewer != null + && textViewer.getTextWidget() != null) { + textViewer.getTextWidget().removeFocusListener(getFocusListener()); + textViewer.getTextWidget().removeFocusListener(borderDecorator); + textViewer.getTextWidget().dispose(); } super.dispose(); diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java index ada7e6e08..c9dfdbe17 100644 --- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java +++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java @@ -96,40 +96,16 @@ public class DescriptionElementComposite extends GroupedComposite { initTextViewer(); } - - protected void createContent() { - // Stolen from NameComposite - setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); - TableWrapLayout layout = new TableWrapLayout(); - layout.leftMargin = 0; - layout.topMargin = 0; - layout.bottomMargin = 0; - layout.verticalSpacing = 0; - setLayout(layout); - Color groupBackgroundColor = TaxEditorPlugin.getDefault(). - getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR); - setBackground(groupBackgroundColor); - } - - public void setIcon(Image icon) { - // Adapted from NameComposite - if (getTextViewer() instanceof NameViewer) { - ((NameViewer) getTextViewer()).setIcon(icon); - } - } - protected ContextMenu createContextMenu() { // Adapted from NameComposite - - NameViewer nameViewer = (NameViewer) getTextViewer(); - - if (nameViewer != null) { - ContextMenu contextMenu = new ContextMenu(nameViewer.getRulerControl()); - nameViewer.getTextWidget().setMenu(contextMenu.getMenu()); + + if (textViewer != null) { + ContextMenu contextMenu = new ContextMenu(textViewer.getRulerControl()); + textViewer.getTextWidget().setMenu(contextMenu.getMenu()); return contextMenu; } else { - logger.warn("Can't create menu because nameViewer has not been initalized."); + logger.warn("Can't create menu because textViewer has not been initalized."); return null; } } @@ -144,19 +120,13 @@ public class DescriptionElementComposite extends GroupedComposite { text = ""; } - getTextViewer().getTextWidget().setText(text); + textViewer.getTextWidget().setText(text); } public DescriptionElementBase getElement() { return element; } - protected void createLineWrapSupport() { - new LineWrapSupport(getTextViewer(), managedForm); - } - - - private void createTextViewer() { this.textViewer = new NameViewer(this); this.textViewer.getTextWidget().addModifyListener(new ParseListener() { diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java index 090572f0a..25f481a41 100644 --- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java +++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java @@ -18,10 +18,13 @@ import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.swt.events.FocusAdapter; import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.IManagedForm; +import org.eclipse.ui.forms.widgets.TableWrapData; +import org.eclipse.ui.forms.widgets.TableWrapLayout; import org.eclipse.ui.views.properties.IPropertySource; import eu.etaxonomy.cdm.model.description.Feature; @@ -89,34 +92,29 @@ public class DescriptionLabelComposite extends GroupedComposite { initTextViewer(); } - + private void initTextViewer() { - String text = getDescription().getTitleCache(); - getTextViewer().getTextWidget().setText(text); + if (textViewer != null) { + String text = getDescription().getTitleCache(); + textViewer.getTextWidget().setText(text); + } else { + logger.warn("TextViewer is null."); + } } public TaxonDescription getDescription() { return description; } - - public void setIcon(Image icon) { - // Adapted from NameComposite - if (getTextViewer() instanceof NameViewer) { - ((NameViewer) getTextViewer()).setIcon(icon); - } - } protected ContextMenu createContextMenu() { // Adapted from NameComposite - NameViewer nameViewer = (NameViewer) getTextViewer(); - - if (nameViewer != null) { - ContextMenu contextMenu = new ContextMenu(nameViewer.getRulerControl()); - nameViewer.getTextWidget().setMenu(contextMenu.getMenu()); + if (textViewer != null) { + ContextMenu contextMenu = new ContextMenu(textViewer.getRulerControl()); + textViewer.getTextWidget().setMenu(contextMenu.getMenu()); return contextMenu; } else { - logger.warn("Can't create menu because nameViewer has not been initalized."); + logger.warn("Can't create menu because textViewer has not been initalized."); return null; } } diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/ConceptComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/ConceptComposite.java index 8290390a4..6e12efbb0 100644 --- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/ConceptComposite.java +++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/ConceptComposite.java @@ -136,7 +136,7 @@ public class ConceptComposite extends NameComposite { protected void calculateErrors() { super.calculateErrors(); - nameViewer.setShowSecError(relatedTaxon); + textViewer.setShowSecError(relatedTaxon); } } diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java index dea038a43..e832d4e6d 100644 --- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java +++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java @@ -123,7 +123,7 @@ public class MisappliedNameComposite extends NameComposite { protected void calculateErrors() { super.calculateErrors(); - nameViewer.setShowSecError(misappliedName); + textViewer.setShowSecError(misappliedName); } @Override diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java index 538a96951..7eef59c58 100644 --- a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java +++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java @@ -143,8 +143,6 @@ public abstract class NameComposite extends GroupedComposite { protected boolean isParsing; - protected NameViewer nameViewer; - /** * The constructor for a DescriptionElementComposite. Takes a parent Composite on which to * create itself, and an IManagedForm for Composite life cycle methods, i.e. @@ -158,11 +156,11 @@ public abstract class NameComposite extends GroupedComposite { String compositeType, TaxonBase taxonBase) { super(parent, managedForm); - createNameViewer(); + createTextViewer(); createBorderSupport(); createLineWrapSupport(); - setDraggableControl(nameViewer.getRulerControl()); + setDraggableControl(textViewer.getRulerControl()); createParser(); createEmptyViewerPrompt(EMPTY_NAME_PROMPT); @@ -172,20 +170,6 @@ public abstract class NameComposite extends GroupedComposite { // during a session was to open a new taxon, the empty name prompt didn't work createNameListener(taxonBase.getName()); } - - protected void createContent() { - setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB)); - TableWrapLayout layout = new TableWrapLayout(); - layout.leftMargin = 0; - layout.topMargin = 0; - layout.bottomMargin = 0; - layout.verticalSpacing = 0; - setLayout(layout); - - Color groupBackgroundColor = TaxEditorPlugin.getDefault(). - getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR); - setBackground(groupBackgroundColor); - } protected String getEmptyTextPrompt() { return EMPTY_NAME_PROMPT; @@ -297,18 +281,18 @@ public abstract class NameComposite extends GroupedComposite { protected abstract TaxonNameBase getName(); protected void calculateErrors() { - nameViewer.clearErrors(); - nameViewer.setShowParsingError(getName()); + textViewer.clearErrors(); + textViewer.setShowParsingError(getName()); } - private NameViewer createNameViewer() { + private NameViewer createTextViewer() { - nameViewer = new NameViewer(this); + textViewer = new NameViewer(this); - StyledText styledText = nameViewer.getTextWidget(); -// nameViewer.setLineBreakListener(new LineBreakListener() { + StyledText styledText = textViewer.getTextWidget(); +// textViewer.setLineBreakListener(new LineBreakListener() { - setTextViewer(nameViewer); + setTextViewer(textViewer); LineBreakListener lineBreakListener = new LineBreakListener() { @Override @@ -331,9 +315,9 @@ public abstract class NameComposite extends GroupedComposite { } }); - // createLineWrapSupport(nameViewer); + // createLineWrapSupport(textViewer); - return nameViewer; + return textViewer; } private Label nonEditableInfo; @@ -355,28 +339,14 @@ public abstract class NameComposite extends GroupedComposite { } nonEditableInfo.setText(info.toUpperCase()); } - - public NameViewer getTextViewer() { - return this.nameViewer; - } - - public void setTextViewer(NameViewer textViewer) { - this.nameViewer = textViewer; - } - + public void createBorderSupport() { super.createBorderSupport(); - if (nameViewer != null) { - borderDecorator.setBorderedComposite(nameViewer.getTextWidget()); + if (textViewer != null) { + borderDecorator.setBorderedComposite(textViewer.getTextWidget()); } } - - public void setIcon(Image icon) { - if (nameViewer != null) { - nameViewer.setIcon(icon); - } - } - + protected IPropertySource getPropertySourceByName(TaxonNameBase name) { if (name == null) { return null; @@ -396,12 +366,12 @@ public abstract class NameComposite extends GroupedComposite { } protected ContextMenu createContextMenu() { - if (nameViewer != null) { - ContextMenu contextMenu = new ContextMenu(nameViewer.getRulerControl()); - nameViewer.getTextWidget().setMenu(contextMenu.getMenu()); + if (textViewer != null) { + ContextMenu contextMenu = new ContextMenu(textViewer.getRulerControl()); + textViewer.getTextWidget().setMenu(contextMenu.getMenu()); return contextMenu; } else { - logger.warn("Can't create menu because nameViewer has not been initalized."); + logger.warn("Can't create menu because textViewer has not been initalized."); return null; } }