// Created on 14.09.2007
package org.eclipse.rap.rms.ui.internal.datamodel;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.rap.rms.data.IAssignment;
import org.eclipse.rap.rms.ui.internal.RMSMessages;
import org.eclipse.rap.rms.ui.internal.datamodel.EntityAdapter.EntityImage;
import org.eclipse.rap.rms.ui.internal.datamodel.EntityAdapter.IEntityAdapter;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertyDescriptor;
final class AssignmentAdapter implements IEntityAdapter {
public Object[] getElements( final Object parent ) {
return null;
}
public Object getParent( final Object child ) {
return ( ( IAssignment )child ).getProject();
}
public Object[] getChildren( final Object parent ) {
return null;
}
public boolean hasChildren( final Object parent ) {
return false;
}
public Image getImage( final Object element ) {
return getEditorImage( element ).createImage();
}
public String getText( final Object element ) {
return ( ( IAssignment )element ).getEmployee().getLastName();
}
public String getEditorName( final Object element ) {
IAssignment assignment = ( IAssignment )element;
StringBuffer result = new StringBuffer();
result.append( assignment.getProject().getName() );
result.append( ": " ); //$NON-NLS-1$
result.append( assignment.getEmployee().getLastName() );
return result.toString();
}
public ImageDescriptor getEditorImage( final Object element ) {
return EntityAdapter.getImageDescriptor( EntityImage.ASSIGNMENT );
}
public void createNewMenu( final Object element,
final IMenuManager menuManager )
{
}
@SuppressWarnings("unchecked") //$NON-NLS-1$
public IWizardPage createWizardPage( final Object element,
final Class destinationType )
{
return null;
}
@SuppressWarnings("unchecked") //$NON-NLS-1$
public String createWizardTitle( final Class destinationType ) {
return null;
}
public void refreshAssociations( final Object element,
final StructuredViewer viewer ) {
IAssignment assignment = ( IAssignment )element;
viewer.refresh( assignment.getProject() );
viewer.refresh( assignment.getEmployee() );
}
public IPropertySource getPropertySource( final Object element ) {
return new IPropertySource() {
private final static String ID_PROJECT = "Project"; //$NON-NLS-1$
private final static String ID_EMPLOYEE = "Employee"; //$NON-NLS-1$
private final IAssignment assignment = ( IAssignment )element;
public Object getEditableValue() {
return null;
}
public IPropertyDescriptor[] getPropertyDescriptors() {
return new IPropertyDescriptor[] {
new PropertyDescriptor( ID_PROJECT, RMSMessages.get().AssignmentAdapter_Project ),
new PropertyDescriptor( ID_EMPLOYEE, RMSMessages.get().AssignmentAdapter_Employee )
};
}
public Object getPropertyValue( final Object id ) {
Object result = null;
if( ID_PROJECT == id ) {
result = assignment.getProject().getName();
} else if( ID_EMPLOYEE == id ) {
StringBuffer buffer = new StringBuffer();
buffer.append( assignment.getEmployee().getFirstName() );
buffer.append( " " ); //$NON-NLS-1$
buffer.append( assignment.getEmployee().getLastName() );
result = buffer.toString();
}
return result;
}
public boolean isPropertySet( final Object id ) {
return false;
}
public void resetPropertyValue( final Object id ) {
}
public void setPropertyValue( final Object id, final Object value ) {
}
};
}
public FormPage[] getEditorPages( final Object element,
final FormEditor editor )
{
return new FormPage[] {
new AssignmentOverviewPage( editor )
};
}
}