// Created on 14.09.2007 package org.eclipse.rap.rms.ui.internal.datamodel; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.rap.rms.data.DataModelRegistry; import org.eclipse.rap.rms.data.IAssignment; import org.eclipse.rap.rms.data.IEmployee; import org.eclipse.rap.rms.data.IEntity; import org.eclipse.rap.rms.data.IProject; import org.eclipse.rap.rms.ui.internal.Activator; import org.eclipse.rap.rms.ui.internal.RMSMessages; import org.eclipse.rap.rms.ui.internal.wizards.INewEntityPage; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; final class NewAssignmentWizardPage extends WizardPage implements INewEntityPage { private final IProject project; private IEmployee employee; private IAssignment newAssignment; private final class ComboContentProvider implements IStructuredContentProvider { public void dispose() { } public void inputChanged( final Viewer viewer, final Object oldInput, final Object newInput ) { } public Object[] getElements( final Object inputElement ) { return DataModelRegistry.getFactory().getEmployees().toArray(); } } private final class ComboLabelProvider extends LabelProvider { @Override public String getText( final Object element ) { IEmployee employeeLbl = ( IEmployee )element; return employeeLbl.getFirstName() + " " + employeeLbl.getLastName(); //$NON-NLS-1$ } } NewAssignmentWizardPage( final IProject project ) { super( "New Resource Assignment" ); //$NON-NLS-1$ setTitle( RMSMessages.get().NewAssignmentWizardPage_NewResourceAssign + project.getName() + "]" ); //$NON-NLS-2$ setMessage( RMSMessages.get().NewAssignmentWizardPage_EnterInfo, IMessageProvider.WARNING ); setPageComplete( false ); this.project = project; Image img = Activator.getDefault().getImage( Activator.IMG_WIZ_BAN ); setImageDescriptor( ImageDescriptor.createFromImage( img ) ); } public void createControl( final Composite parent ) { BgColorUtil.setBgColor( parent.getParent() ); BgColorUtil.setBgColor( parent ); Composite composite = new Composite( parent, SWT.NONE ); BgColorUtil.setBgColor( composite ); composite.setLayout( new GridLayout( 1, false ) ); Label lblName = new Label( composite, SWT.LEFT ); BgColorUtil.setBgColor( lblName ); lblName.setText( RMSMessages.get().NewAssignmentWizardPage_SelectResource ); ComboViewer viewer = new ComboViewer( composite ); viewer.setContentProvider( new ComboContentProvider() ); viewer.setLabelProvider( new ComboLabelProvider() ); viewer.setInput( DataModelRegistry.getFactory() ); viewer.addSelectionChangedListener( new ISelectionChangedListener() { public void selectionChanged( final SelectionChangedEvent event ) { setMessage( RMSMessages.get().NewAssignmentWizardPage_SelectResourceToAssign, IMessageProvider.WARNING ); setPageComplete( false ); ISelection selection = event.getSelection(); if( selection != null ) { IStructuredSelection sselection = ( IStructuredSelection )selection; employee = ( IEmployee )sselection.getFirstElement(); setMessage( RMSMessages.get().NewAssignmentWizardPage_CreateAssignment, IMessageProvider.INFORMATION ); setPageComplete( true ); } } } ); viewer.getControl().setFocus(); setControl( composite ); } public boolean create() { newAssignment = project.newAssignment( employee ); return newAssignment != null; } public IEntity getEntity() { return newAssignment; } }