//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.authoring.ui.forms; import org.eclipse.epf.authoring.ui.AuthoringUIResources; import org.eclipse.epf.authoring.ui.AuthoringUIText; import org.eclipse.epf.authoring.ui.editors.MethodElementEditorInput; import org.eclipse.epf.library.edit.util.TngUtil; import org.eclipse.epf.uma.MethodLibrary; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusAdapter; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.forms.widgets.Section; import org.eclipse.ui.forms.widgets.TableWrapData; import org.eclipse.ui.forms.widgets.TableWrapLayout; /** * Description page for method library * * @author Phong Nguyen Le * @since 1.0 */ public class MethodLibraryDescriptionFormPage extends FormPage { private static final int DEFAULT_VERTICAL_INDENT = 2; private Text ctrl_name; private Text ctrl_brief_desc; private Section generalSection; private Composite generalComposite; private MethodLibrary library; private Text textAuthors; private Text ctrl_change_date; private Text ctrl_change_desc; private Text ctrl_version; private Text ctrl_copyright; /** * Creates an instance * @param editor */ public MethodLibraryDescriptionFormPage(FormEditor editor) { super( editor, AuthoringUIResources.descriptionPage_title, AuthoringUIResources.descriptionPage_title); } /** * @see org.eclipse.ui.forms.editor.FormPage#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput) */ public void init(IEditorSite site, IEditorInput input) { super.init(site, input); // get MethodLibrary object from Editor input MethodElementEditorInput methodElementInput = (MethodElementEditorInput) input; Object obj = methodElementInput.getMethodElement(); if (obj instanceof MethodLibrary) { library = (MethodLibrary) obj; } } /** * Creates the form content. * * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm) */ protected void createFormContent(IManagedForm managedForm) { // create form toolkit ScrolledForm form = managedForm.getForm(); FormToolkit toolkit = managedForm.getToolkit(); form.setText(getEditor().getPartName()); TableWrapLayout layout = new TableWrapLayout(); form.getBody().setLayout(layout); // Create editor content createEditorContent(toolkit, form.getBody()); } /** * Create editor tab content * * @param toolkit * @param editorComposite */ private void createEditorContent(FormToolkit toolkit, Composite editorComposite) { // Create General Information section generalSection = toolkit.createSection(editorComposite, Section.DESCRIPTION | Section.TWISTIE | Section.EXPANDED | Section.TITLE_BAR); TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB); generalSection.setLayoutData(td); generalSection .setText(AuthoringUIResources.MethodLibraryDescriptionFormPage_section_title); generalSection .setDescription(AuthoringUIResources.MethodLibraryDescriptionFormPage_section_description); generalSection.setLayout(new GridLayout()); generalComposite = toolkit.createComposite(generalSection); generalComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); generalComposite.setLayout(new GridLayout(2, false)); generalSection.setClient(generalComposite); // name Label l_name = toolkit.createLabel(generalComposite, AuthoringUIResources.name_text); { GridData gridData = new GridData(GridData.BEGINNING); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; l_name.setLayoutData(gridData); } ctrl_name = toolkit.createText(generalComposite, "", SWT.SINGLE); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); gridData.widthHint = 400; gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; ctrl_name.setLayoutData(gridData); } // brief desc Label l_brief_desc = toolkit.createLabel(generalComposite, AuthoringUIResources.description_text); { GridData gridData = new GridData(GridData.BEGINNING); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; l_brief_desc.setLayoutData(gridData); } ctrl_brief_desc = toolkit.createText(generalComposite, "", SWT.MULTI | SWT.WRAP); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); gridData.heightHint = 40; gridData.widthHint = 400; gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; ctrl_brief_desc.setLayoutData(gridData); } // Authors Label label = toolkit.createLabel(generalComposite, AuthoringUIResources.authors_text); { GridData gridData = new GridData(GridData.BEGINNING); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; label.setLayoutData(gridData); } textAuthors = toolkit.createText(generalComposite, "", SWT.MULTI | SWT.WRAP); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); gridData.heightHint = 40; gridData.widthHint = 400; gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; textAuthors.setLayoutData(gridData); } // Change Date Label l_changedate = toolkit.createLabel(generalComposite, ""); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.BEGINNING); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; l_changedate.setLayoutData(gridData); } ctrl_change_date = toolkit.createText(generalComposite, "", SWT.READ_ONLY); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; ctrl_change_date.setLayoutData(gridData); } // Authors Label l_change_desc = toolkit.createLabel(generalComposite, AuthoringUIText.CHANGE_DESCRIPTION_TEXT); { GridData gridData = new GridData(GridData.BEGINNING); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; l_change_desc.setLayoutData(gridData); } ctrl_change_desc = toolkit.createText(generalComposite, "", SWT.MULTI); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); gridData.heightHint = 40; gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; ctrl_change_desc.setLayoutData(gridData); } // Version Label l_version = toolkit.createLabel(generalComposite, AuthoringUIText.VERSION_TEXT); { GridData gridData = new GridData(GridData.BEGINNING); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; l_version.setLayoutData(gridData); } ctrl_version = toolkit.createText(generalComposite, "", SWT.MULTI); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; ctrl_version.setLayoutData(gridData); } Label l_copyright = toolkit.createLabel(generalComposite, AuthoringUIResources.copyright_text); { GridData gridData = new GridData(GridData.BEGINNING); gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; l_copyright.setLayoutData(gridData); } ctrl_copyright = toolkit.createText(generalComposite, ""); //$NON-NLS-1$ { GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); gridData.heightHint = 40; gridData.widthHint = 400; gridData.horizontalSpan = 1; gridData.verticalIndent = DEFAULT_VERTICAL_INDENT; ctrl_copyright.setLayoutData(gridData); } toolkit.paintBordersFor(generalComposite); addListeners(); loadData(); // Set focus on the name attribute Display display = editorComposite.getDisplay(); if (!(display == null || display.isDisposed())) { display.asyncExec(new Runnable() { public void run() { ctrl_name.setFocus(); } }); } } /** * @see org.eclipse.ui.forms.editor.FormPage#dispose() */ public void dispose() { super.dispose(); } /** * Loads initial data from model */ private void loadData() { String name = library.getName(); String brief_desc = library.getBriefDescription(); ctrl_name.setText(TngUtil.checkNull(name)); ctrl_brief_desc.setText(TngUtil.checkNull(brief_desc)); textAuthors.setText(TngUtil.checkNull(library.getAuthors())); if (library.getChangeDate() != null) { ctrl_change_date.setText(TngUtil.checkNull(library.getChangeDate() .toLocaleString())); } ctrl_change_desc.setText(TngUtil.checkNull(library .getChangeDescription())); ctrl_version.setText(TngUtil.checkNull(library.getVersion())); } /** * Add focus listeners * */ private void addListeners() { ctrl_name.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { library.setName(ctrl_name.getText()); } }); ctrl_brief_desc.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { library.setBriefDescription(ctrl_brief_desc.getText()); } }); textAuthors.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { library.setAuthors(textAuthors.getText()); } }); ctrl_change_desc.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { library.setChangeDescription(ctrl_change_desc.getText()); } }); ctrl_version.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { library.setVersion(ctrl_version.getText()); } }); ctrl_copyright.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { } }); } }