1 package eu
.etaxonomy
.taxeditor
;
3 import org
.eclipse
.jface
.viewers
.ISelection
;
4 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
5 import org
.eclipse
.swt
.SWT
;
6 import org
.eclipse
.swt
.events
.ModifyEvent
;
7 import org
.eclipse
.swt
.events
.ModifyListener
;
8 import org
.eclipse
.swt
.layout
.GridData
;
9 import org
.eclipse
.swt
.layout
.GridLayout
;
10 import org
.eclipse
.swt
.widgets
.Button
;
11 import org
.eclipse
.swt
.widgets
.Composite
;
12 import org
.eclipse
.swt
.widgets
.Label
;
13 import org
.eclipse
.swt
.widgets
.Text
;
14 import org
.eclipse
.ui
.forms
.IDetailsPage
;
15 import org
.eclipse
.ui
.forms
.IFormPart
;
16 import org
.eclipse
.ui
.forms
.IManagedForm
;
17 import org
.eclipse
.ui
.forms
.widgets
.FormToolkit
;
18 import org
.eclipse
.ui
.forms
.widgets
.Section
;
19 import org
.eclipse
.ui
.forms
.widgets
.TableWrapData
;
20 import org
.eclipse
.ui
.forms
.widgets
.TableWrapLayout
;
22 public class NameDetailsPage
implements IDetailsPage
{
23 private IManagedForm mform
;
25 //private TaxonName input;
26 private Button
[] choices
;
29 private Text genusName
;
30 private Text speciesEpithet
;
32 private static final String RTEXT_DATA
=
33 "<form><p>An example of a free-form text that should be "+ //$NON-NLS-1$
34 "wrapped below the section with widgets.</p>"+ //$NON-NLS-1$
35 "<p>It can contain simple tags like <a>links</a> and <b>bold text</b>.</p></form>"; //$NON-NLS-1$
37 public NameDetailsPage() {
40 * @see org.eclipse.ui.forms.IDetailsPage#initialize(org.eclipse.ui.forms.IManagedForm)
42 public void initialize(IManagedForm mform
) {
46 * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)
48 public void createContents(Composite parent
) {
49 TableWrapLayout layout
= new TableWrapLayout();
51 layout
.leftMargin
= 5;
52 layout
.rightMargin
= 2;
53 layout
.bottomMargin
= 2;
54 parent
.setLayout(layout
);
56 FormToolkit toolkit
= mform
.getToolkit();
57 //s1 = toolkit.createSection(parent, Section.DESCRIPTION|Section.TITLE_BAR);
58 s1
= toolkit
.createSection(parent
, Section
.TITLE_BAR
);
60 s1
.setText("Type One Details"); //$NON-NLS-1$
61 //s1.setDescription(Messages.getString("TypeOneDetailsPage.name")); //$NON-NLS-1$
62 TableWrapData td
= new TableWrapData(TableWrapData
.FILL
, TableWrapData
.TOP
);
63 td
.grabHorizontal
= true;
65 Composite client
= toolkit
.createComposite(s1
);
66 GridLayout glayout
= new GridLayout();
67 glayout
.marginWidth
= glayout
.marginHeight
= 0;
68 glayout
.numColumns
= 2;
69 client
.setLayout(glayout
);
72 /*SelectionListener choiceListener = new SelectionAdapter() {
73 public void widgetSelected(SelectionEvent e) {
74 Integer value = (Integer)e.widget.getData();
76 input.setChoice(value.intValue());
82 NOTE: this can only be commented out when CHOICES part of update() below is also commented out
83 choices = new Button[TypeOne.CHOICES.length];
84 for (int i=0; i<Name.CHOICES.length; i++) {
85 choices[i] = toolkit.createButton(client, Name.CHOICES[i], SWT.RADIO);
86 choices[i].setData(new Integer(i));
87 //choices[i].addSelectionListener(choiceListener);
89 gd.horizontalSpan = 2;
90 choices[i].setLayoutData(gd);
92 /*createSpacer(toolkit, client, 2);
93 flag = toolkit.createButton(client, Messages.getString("TypeOneDetailsPage.check"), SWT.CHECK); //$NON-NLS-1$
94 flag.addSelectionListener(new SelectionAdapter() {
95 public void widgetSelected(SelectionEvent e) {
97 input.setFlag(flag.getSelection());
101 gd.horizontalSpan = 2;
102 flag.setLayoutData(gd);*/
103 createSpacer(toolkit
, client
, 2);
105 /*toolkit.createLabel(client, "Scientific Name:"); //$NON-NLS-1$
106 text = toolkit.createText(client, "", SWT.SINGLE); //$NON-NLS-1$
107 text.addModifyListener(new ModifyListener() {
108 public void modifyText(ModifyEvent e) {
110 input.setText(text.getText());
114 toolkit
.createLabel(client
, "Genus Name:"); //$NON-NLS-1$
115 genusName
= toolkit
.createText(client
, "", SWT
.BORDER
| SWT
.SHADOW_NONE
); //$NON-NLS-1$
116 genusName
.addModifyListener(new ModifyListener() {
117 public void modifyText(ModifyEvent e
) {
119 input
.setGenusName(genusName
.getText());
120 //input.setGenus(genusName.getText());
124 toolkit
.createLabel(client
, "Species Epithet:"); //$NON-NLS-1$
125 speciesEpithet
= toolkit
.createText(client
, "", SWT
.BORDER
); //$NON-NLS-1$
126 speciesEpithet
.addModifyListener(new ModifyListener() {
127 public void modifyText(ModifyEvent e
) {
129 input
.setSpeciesEpithet(speciesEpithet
.getText());
130 //input.setSpecificEpithet(speciesEpithet.getText());
134 gd
= new GridData(GridData
.FILL_HORIZONTAL
|GridData
.VERTICAL_ALIGN_BEGINNING
);
136 /*text.setLayoutData(gd);*/
137 genusName
.setLayoutData(gd
);
138 speciesEpithet
.setLayoutData(gd
);
140 createSpacer(toolkit
, client
, 2);
142 FormText rtext = toolkit.createFormText(parent, true);
143 rtext.setText(RTEXT_DATA, true, false);
144 td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
145 td.grabHorizontal = true;
146 rtext.setLayoutData(td);
148 toolkit
.paintBordersFor(s1
);
149 s1
.setClient(client
);
151 private void createSpacer(FormToolkit toolkit
, Composite parent
, int span
) {
152 Label spacer
= toolkit
.createLabel(parent
, ""); //$NON-NLS-1$
153 GridData gd
= new GridData();
154 gd
.horizontalSpan
= span
;
155 spacer
.setLayoutData(gd
);
157 private void update() {
158 /*for (int i=0; i<TypeOne.CHOICES.length; i++) {
159 choices[i].setSelection(input!=null && input.getChoice()==i);
161 /*flag.setSelection(input!=null && input.getFlag());*/
162 //s1.setText(input!=null && input.getFullName() !=null?input.getFullName():"");
163 s1
.setText(input
!=null && input
.getText() !=null?input
.getText():"");
164 /*text.setText(input!=null && input.getText()!=null?input.getText():"");*/
165 genusName
.setText(input
!=null && input
.getGenusName()!=null?input
.getGenusName():"");
166 speciesEpithet
.setText(input
!=null && input
.getSpeciesEpithet()!=null?input
.getSpeciesEpithet():"");
169 * @see org.eclipse.ui.forms.IDetailsPage#inputChanged(org.eclipse.jface.viewers.IStructuredSelection)
171 public void selectionChanged(IFormPart part
, ISelection selection
) {
172 IStructuredSelection ssel
= (IStructuredSelection
)selection
;
173 if (ssel
.size()==1) {
174 input
= (Name
)ssel
.getFirstElement();
175 //input = (TaxonName)ssel.getFirstElement();
182 * @see org.eclipse.ui.forms.IDetailsPage#commit()
184 public void commit(boolean onSave
) {
187 * @see org.eclipse.ui.forms.IDetailsPage#setFocus()
189 public void setFocus() {
190 choices
[0].setFocus();
193 * @see org.eclipse.ui.forms.IDetailsPage#dispose()
195 public void dispose() {
198 * @see org.eclipse.ui.forms.IDetailsPage#isDirty()
200 public boolean isDirty() {
203 public boolean isStale() {
207 * @see org.eclipse.ui.forms.IDetailsPage#refresh()
209 public void refresh() {
212 public boolean setFormInput(Object input
) {