// Created on 30.09.2007 package org.eclipse.rap.rms.ui.internal.datamodel; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.rap.rms.ui.internal.Activator; import org.eclipse.rap.rms.ui.internal.RMSMessages; import org.eclipse.rap.rms.ui.internal.datamodel.PageUtil.Container; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.DateTime; 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; public class ProjectOverviewPage extends FormPage { private static final String OVERVIEW = "Overview"; //$NON-NLS-1$ private final ProjectCopy project; public ProjectOverviewPage( final FormEditor editor, final ProjectCopy project ) { super( editor, OVERVIEW, RMSMessages.get().ProjectOverviewPage_Title ); this.project = project; this.project.setDirtyNotificator( new Runnable() { public void run() { ProjectOverviewPage.this.firePropertyChange( PROP_DIRTY ); } } ); } @Override public void init( final IEditorSite site, final IEditorInput input ) { super.init( site, input ); setTitleToolTip( RMSMessages.get().ProjectOverviewPage_ToolTip ); } @Override protected void createFormContent( final IManagedForm managedForm ) { ScrolledForm scrolledForm = managedForm.getForm(); FormToolkit toolkit = managedForm.getToolkit(); Composite body = PageUtil.createBody( scrolledForm, Activator.IMG_FORM_HEAD_OVERVIEW ); DataBindingContext ctx = PageUtil.createBindingContext(); // general info section Composite info = PageUtil.createGeneralInfoSection( scrolledForm, toolkit, body, project.getName() ); Container cInfo = new Container( toolkit, info ); PageUtil.createLabelText( cInfo, RMSMessages.get().ProjectOverviewPage_Name, project.getName(), true ); Text txtDesc = PageUtil.createLabelMultiText( cInfo, RMSMessages.get().ProjectOverviewPage_Description, project.getDescription() ); PageUtil.bindText( ctx,project, txtDesc, ProjectCopy.DESCRIPTION ); DateTime dtStart = PageUtil.createLabelDate( cInfo, RMSMessages.get().ProjectOverviewPage_StartDate, project.getStartDate() ); PageUtil.bindDate( ctx, project, dtStart, ProjectCopy.START_DATE ); DateTime dtEnd = PageUtil.createLabelDate( cInfo, RMSMessages.get().ProjectOverviewPage_EndDate, project.getEndDate() ); PageUtil.bindDate( ctx, project, dtEnd, ProjectCopy.END_DATE ); } @Override public void doSave( final IProgressMonitor monitor ) { project.save(); } @Override public boolean isDirty() { return project.isDirty(); } }