Migration Guide for Sapphire 0.7
This documents covers changes that need to be made by Sapphire adopters as part of migrating
to Sapphire 0.7 from a prior release. Only changes from the previous major release are covered.
Table of Contents
- AbsoluteFilePathBrowseActionHandler
- AbsoluteFolderPathBrowseActionHandler
- AbstractSlushBucketPropertyEditorRenderer
- ActionBridge
- ActionHandlerBridge
- ActionSystemPartBridge
- ActuatorDef
- ActuatorPart
- AdapterService
- BindingImpl
- BooleanPropertyEditorRenderer
- BundleImageDataFactory
- CheckBoxListPropertyEditorRenderer
- Color
- ColumnSortComparator
- CompactListPropertyEditorRenderer
- CompositeDef
- CompositePart
- ConditionalDef
- ConditionalPart
- ContentOutlineNodeState
- ContentOutlineState
- Context
- ConversionService
- CreateWorkspaceFileOp
- DateSerializationService
- DefaultListPropertyEditorRenderer
- DefaultValuePropertyEditorRenderer
- DependenciesAggregationService
- DialogDef
- DtdParser
- EclipseWorkspacePathPropertyEditorRenderer
- EditorPagePresentation
- ElementBindingImpl
- ElementProperty
- ElementValidationEvent
- Enabled Function
- EnumPropertyEditorRenderer
- Event
- FormComponentDef
- FormComponentPart
- FormDef
- FormEditorPage
- FormEditorPageDef
- FormEditorPagePart
- FormPart
- FunctionContext
- GenerateImpl
- GridLayoutUtil
- HtmlPanelDef
- HtmlPanelPart
- HyperlinkTable
- ImageData
- ImageService
- IDiagramEditorPageDef
- IExecutableModelElement
- IFormPartInclude
- IModelElement
- IModelParticle
- ImpliedElementProperty
- IPropertiesViewContributionDef
- IPropertiesViewContributionPageDef
- IPropertiesViewContributorDef
- IPropertiesViewContributorPart
- ISapphireCustomPartDef
- ISapphireGroupDef
- ISapphireLabelDef
- ISapphireStaticTextFieldDef
- JavaType
- LabelPart
- LayeredListBindingImpl
- LineSeparatorDef
- LineSeparatorPart
- ListBindingImpl
- ListProperty
- ListPropertyEditorRenderer
- LoggingService
- MasterDetailsContentNode
- MasterDetailsContentNodeChildDef
- MasterDetailsContentNodeDef
- MasterDetailsContentNodeFactoryCaseDef
- MasterDetailsContentNodeFactoryDef
- MasterDetailsContentNodeInclude
- MasterDetailsContentNodeList
- MasterDetailsContentOutline
- MasterDetailsEditorPage
- MasterDetailsEditorPageDef
- MasterDetailsEditorPagePart
- MasterDetailsEditorPageState
- ModelElementHandle
- ModelElementList
- ModelElementsTransfer
- ModelElementType
- ModelProperty
- NamedValuesPropertyEditorRenderer
- NLS
- PageBookDef
- PageBookExtDef
- PageBookKeyMapping
- PageBookPart
- PageBookPartControlMethod
- PossibleValuesService
- ProblemsTraversalService
- ProblemsTraversalServiceData
- ProgressMonitorBridge
- PropertiesViewContributionManager
- PropertiesViewContributionPagePart
- PropertiesViewContributionPart
- PropertyContentEvent
- PropertyEditorDef
- PropertyEditorPart
- PropertyEditorAssistContext
- PropertyEditorAssistContributor
- PropertyEditorRenderer
- PropertyEditorRendererFactory
- PropertyEnablementEvent
- PropertyEvent
- PropertyInitializationEvent
- PropertyValidationEvent
- ReferenceValue
- RelativePathBrowseActionHandler
- Resource
- SapphireActionHandler
- SapphireActionPresentation
- SapphireActionPresentationManager
- SapphireBrowseActionHandler
- SapphireDiagramEditorPagePart
- SapphireDialog
- SapphireDialogPart
- SapphireEditor
- SapphireEditorFormPage
- SapphireEnumControlledPageBook
- SapphireForm
- SapphireGroup
- SapphireHotSpotsActionPresentation
- SapphireJumpActionHandler
- SapphireKeyboardActionPresentation
- SapphireListControlledPageBook
- SapphireMenuActionPresentation
- SapphirePart
- SapphirePopup
- SapphirePropertyEditorActionHandler
- SapphirePropertyEditorCondition
- SapphirePropertyPage
- SapphirePropertySheetPage
- SapphireStaticTextField
- SapphireStatusDialog
- SapphireTextCellEditor
- SapphireTextPopup
- SapphireToolBarActionPresentation
- SapphireToolBarManagerActionPresentation
- SapphireToolTip
- SapphireWizard
- SapphireWizardPage
- SapphireWizardPagePart
- SapphireWizardPart
- ScalePropertyEditorRenderer
- SectionDef
- SectionPart
- SectionRef
- SeparatorDef
- SeparatorPart
- ServiceFactory
- SlushBucketPropertyEditor
- SplitFormBlockDef
- SplitFormBlockPart
- SplitFormDef
- SplitFormPart
- StandardXmlListBindingImpl
- SwtRendererUtil
- SwtResourceCache
- SwtUtil
- TabGroupDef
- TabGroupPageDef
- TabGroupPagePart
- TabGroupPart
- Transient
- TransientProperty
- TypeCast
- UrlResolver
- ValidationAggregationService
- ValidationService
- Value
- ValueBindingImpl
- ValueLabelProvider
- ValueProperty
- ValuePropertyEditorRenderer
- ValueSerializationMasterService
- ValueSerializationService
- WhitespaceSeparatorDef
- WhitespaceSeparatorPart
- WithDef
- WithPart
- WithPartImplied
- WizardDef
- WizardPageDef
- XmlDocumentSchemasCache
- XmlResource
- @Service
- SDEF
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.actions.AbsoluteFilePathBrowseActionHandler
|
org.eclipse.sapphire.ui.forms.swt.AbsoluteFilePathBrowseActionHandler
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.actions.AbsoluteFolderPathBrowseActionHandler
|
org.eclipse.sapphire.ui.forms.swt.AbsoluteFolderPathBrowseActionHandler
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.AbstractSlushBucketPropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.AbstractSlushBucketPropertyEditorPresentation
|
Before |
After |
org.eclipse.sapphire.ui.swt.ActionBridge
|
org.eclipse.sapphire.ui.forms.swt.ActionBridge
|
Before |
After |
org.eclipse.sapphire.ui.swt.ActionHandlerBridge
|
org.eclipse.sapphire.ui.forms.swt.ActionHandlerBridge
|
Before |
After |
org.eclipse.sapphire.ui.swt.ActionSystemPartBridge
|
org.eclipse.sapphire.ui.forms.swt.ActionSystemPartBridge
|
Before |
After |
org.eclipse.sapphire.ui.def.ActuatorDef
|
org.eclipse.sapphire.ui.forms.ActuatorDef
|
Before |
After |
org.eclipse.sapphire.ui.ActuatorPart
|
org.eclipse.sapphire.ui.forms.ActuatorPart
|
Before |
After |
public class ExampleAdapterService extends AdapterService
{
@Override
public <T> T adapt( Class<T> type )
{
if( type == IProject.class )
{
INewProjectFileOp op = context( INewProjectFileOp.class );
return type.cast( op.getProject().resolve() );
}
return null;
}
}
|
public class ExampleConversionService extends UniversalConversionService
{
@Override
public <T> T convert( Object object, Class<T> type )
{
if( object instanceof INewProjectFileOp && type == IProject.class )
{
INewProjectFileOp op = (INewProjectFileOp) object;
return type.cast( op.getProject().resolve() );
}
return null;
}
}
|
public class ExampleAdapterService extends AdapterService
{
@Override
public <T> T adapt( Class<T> type )
{
if( type == IProject.class )
{
INewProjectFileOp op = context( INewProjectFileOp.class );
return type.cast( op.getProject().resolve() );
}
return null;
}
}
|
public class ExampleConversionService extends ConversionService<INewProjectFileOp,IProject>
{
public ExampleConversionService()
{
super( INewProjectFileOp.class, IProject.class );
}
@Override
public IProject convert( INewProjectFileOp op )
{
return op.getProject().resolve();
}
}
While extending from UniversalConversionService is a quicker migration, in most cases, better performance can be
achieved by migrating to the typed ConversionService API. Conversions implemented in this manner are quicker for
Sapphire to find.
|
Before |
After |
org.eclipse.sapphire.modeling.BindingImpl
|
org.eclipse.sapphire.PropertyBinding
|
binding.element()
|
binding.property().element()
|
binding.property()
|
binding.property().definition()
|
public class ExampleBinding extends BindingImpl
{
@Override
public void init( IModelElement pdef, ModelProperty property, String[] params )
{
...
}
}
|
public class ExampleBinding extends PropertyBinding
{
@Override
public void init( Property property )
{
Element element = property.element();
PropertyDef pdef = property.definition();
String[] params = pdef.getAnnotation( CustomXmlValueBinding.class ).params();
...
}
}
|
This class is not longer available and no analog has been provided.
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.CheckBoxListPropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.CheckBoxListPropertyEditorPresentation
|
Before |
After |
import org.eclipse.sapphire.ui.Color
|
import org.eclipse.sapphire.Color
|
color.getRed()
|
color.red()
|
color.getGreen()
|
color.green()
|
color.getBlue()
|
color.blue()
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.CompactListPropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.CompactListPropertyEditorPresentation
|
Before |
After |
org.eclipse.sapphire.ui.def.CompositeDef
|
org.eclipse.sapphire.ui.forms.CompositeDef
|
Before |
After |
org.eclipse.sapphire.ui.CompositePart
|
org.eclipse.sapphire.ui.forms.CompositePart
|
This class is not longer available and no analog has been provided.
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.state.ContentOutlineNodeState
|
org.eclipse.sapphire.ui.forms.MasterDetailsNodeState
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.state.ContentOutlineState
|
org.eclipse.sapphire.ui.forms.MasterDetailsOutlineState
|
Before |
After |
URL url = context.findResource( name );
|
InputStream stream = context.findResource( name );
|
List<URL> urls = context.findResources( name );
|
This facility has been removed and no analog has been provided.
|
Before |
After |
public class ExampleConversionService extends ConversionService
{
@Override
public <T> T convert( Object object, Class<T> type )
{
if( object instanceof IFile && type == Resource.class )
{
...
}
return null;
}
}
|
public class ExampleConversionService extends UniversalConversionService
{
@Override
public <T> T convert( Object object, Class<T> type )
{
if( object instanceof IFile && type == Resource.class )
{
...
}
return null;
}
}
|
public class ExampleConversionService extends ConversionService
{
@Override
public <T> T convert( Object object, Class<T> type )
{
if( object instanceof IFile && type == Resource.class )
{
...
}
return null;
}
}
|
public class ExampleConversionService extends ConversionService<IFile,Resource>
{
public ExampleConversionService()
{
super( IFile.class, Resource.class );
}
@Override
public Resource convert( IFile file )
{
...
}
}
While extending from UniversalConversionService is a quicker migration, in most cases, better performance can be
achieved by migrating to the new ConversionService API. Conversions implemented in this manner are quicker for
Sapphire to find.
|
Before |
After |
CreateWorkspaceFileOp.PROP_FILE_NAME
|
CreateWorkspaceFileOp.PROP_FILE
|
operation.getFileName()
|
operation.getFile()
|
operation.setFileName( ... )
|
operation.setFile( ... )
|
operation.getFileHandle()
|
operation.getFile().resolve()
|
Before |
After |
@Type( base = Date.class )
@Service
(
impl = DateSerializationService.class,
params =
{
@Service.Param( name = "format-1", value = "yyyy-MM-dd" ),
@Service.Param( name = "format-2", value = "MM/dd/yyyy" )
}
)
ValueProperty PROP_DATE = new ValueProperty( TYPE, "Date" );
Value<Date> getDate();
void setDate( String value );
void setDate( Date value );
|
@Type( base = Date.class )
@Serialization( primary = "yyyy-MM-dd", alternative = "MM/dd/yyyy" )
ValueProperty PROP_DATE = new ValueProperty( TYPE, "Date" );
Value<Date> getDate();
void setDate( String value );
void setDate( Date value );
|
class ExampleDateSerializationService extends DateSerializationService
{
@Override
public List<? extends DateFormat> formats()
{
List <DateFormat> formats = new ArrayList<DateFormat>();
formats.add( new SimpleDateFormat( "yyyy-MM-dd" );
formats.add( new SimpleDateFormat( "MM/dd/yyyy" );
return formats;
}
}
@Type( base = Date.class )
@Service( impl = ExampleDateSerializationService.class )
ValueProperty PROP_DATE = new ValueProperty( TYPE, "Date" );
Value<Date> getDate();
void setDate( String value );
void setDate( Date value );
|
@Type( base = Date.class )
@Serialization( primary = "yyyy-MM-dd", alternative = "MM/dd/yyyy" )
ValueProperty PROP_DATE = new ValueProperty( TYPE, "Date" );
Value<Date> getDate();
void setDate( String value );
void setDate( Date value );
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.DefaultListPropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.TablePropertyEditorPresentation
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.DefaultValuePropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.TextFieldPropertyEditorPresentation
|
As an optimization, the aggregation intermediary to DependenciesService has been removed.
Before |
After |
Set<ModelPath> dependencies = property.service( DependenciesAggregationService.class ).dependencies();
|
Set<ModelPath> dependencies = new HashSet<ModelPath>();
for( DependenciesService service : property.services( DependenciesService.class ) )
{
dependencies.addAll( service.dependencies() );
}
|
Before |
After |
org.eclipse.sapphire.ui.def.DialogDef
|
org.eclipse.sapphire.ui.forms.DialogDef
|
Before |
After |
DtdParser.parseFromString( dtd )
|
DtdParser.parse( dtd )
|
DtdParser.parseFromUrl( referer, location )
|
DtdParser.parse( new URL( location ) )
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.EclipseWorkspacePathPropertyEditorRenderer
|
org.eclipse.sapphire.workspace.ui.WorkspaceRelativePathPropertyEditorPresentation
|
Before |
After |
org.eclipse.sapphire.ui.swt.EditorPagePresentation
|
org.eclipse.sapphire.ui.forms.swt.EditorPagePresentation
|
The removable method has been removed from ElementBindingImpl class.
Before |
After |
org.eclipse.sapphire.modeling.ElementBindingImpl
|
org.eclipse.sapphire.ElementPropertyBinding
|
public class ExampleBinding extends ElementBindingImpl
{
...
@Override
public boolean removable()
{
...
}
}
|
public class ExampleBinding extends ElementPropertyBinding
{
...
}
|
Before |
After |
org.eclipse.sapphire.modeling.ElementProperty
|
org.eclipse.sapphire.ElementProperty
|
Before |
After |
element.attach
(
new FilteredListener<ElementValidationEvent>()
{
@Override
protected void handleTypedEvent( ElementValidationEvent event )
{
...
}
}
)
|
element.attach
(
new FilteredListener<PropertyValidationEvent>()
{
@Override
protected void handleTypedEvent( PropertyValidationEvent event )
{
...
}
},
"*"
)
|
Before |
After |
${ Enabled( 'FulfillmentDate' ) }
|
${ FulfillmentDate.Enabled }
|
${ Enabled( PurchaseOrder, 'FulfillmentDate' ) }
|
${ PurchaseOrder.FulfillmentDate.Enabled }
|
This class is not longer available and no analog has been provided.
Before |
After |
Event.filter( listener, eventTypes )
|
new FilteringListenerWrapper( listener, eventTypes )
public class FilteringListenerWrapper extends Listener
{
private final Listener listener;
private final Class<?>[] eventTypes;
public FilteringListenerWrapper( Listener listener, Class<?>[] eventTypes )
{
this.listener = listener;
this.eventTypes = eventTypes;
}
@Override
public void handle( Event event )
{
boolean ok = false;
for( Class<?> type : this.eventTypes )
{
if( type.isInstance( event ) )
{
ok = true;
break;
}
}
if( ok )
{
this.listener.handle( event );
}
}
@Override
public boolean equals( Object obj )
{
if( obj instanceof FilteringListenerWrapper )
{
FilteringListenerWrapper x = (FilteringListenerWrapper) obj;
return ( this.listener.equals( x.listener ) && Arrays.equals( this.eventTypes, x.eventTypes ) );
}
return false;
}
@Override
public int hashCode()
{
int hashcode = this.listener.hashCode();
for( Class<?> eventType : this.eventTypes )
{
hashcode = hashcode ^ eventType.hashCode();
}
return hashcode;
}
}
|
Before |
After |
org.eclipse.sapphire.ui.def.FormComponentDef
|
org.eclipse.sapphire.ui.def.FormComponentDef
|
Before |
After |
org.eclipse.sapphire.ui.FormComponentPart
|
org.eclipse.sapphire.ui.forms.FormComponentPart
|
Before |
After |
org.eclipse.sapphire.ui.def.FormDef
|
org.eclipse.sapphire.ui.forms.FormDef
|
Before |
After |
org.eclipse.sapphire.ui.FormEditorPage
|
org.eclipse.sapphire.ui.forms.swt.FormEditorPage
|
Before |
After |
org.eclipse.sapphire.ui.def.FormEditorPageDef
|
org.eclipse.sapphire.ui.forms.FormEditorPageDef
|
Before |
After |
org.eclipse.sapphire.ui.FormEditorPagePart
|
org.eclipse.sapphire.ui.forms.FormEditorPagePart
|
Before |
After |
org.eclipse.sapphire.ui.FormPart
|
org.eclipse.sapphire.ui.forms.FormPart
|
Before |
After |
public ExampleFunctionContext extends FunctionContext
{
@Override
public Function function( String name, List<Function> arguments )
{
...
}
}
|
|
With the switch to on-demand element compilation, there is no longer a need to signal to the framework
which elements should be compiled. Also, the developer no longer has control over the name
of the generated implementation class. As such, the @GenerateImpl annotation has been removed and no direct
equivalent has been provided. For further guidance, post a question
on Sapphire Adopter Forum.
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.GridLayoutUtil
|
org.eclipse.sapphire.ui.forms.swt.GridLayoutUtil
|
Before |
After |
org.eclipse.sapphire.ui.def.HtmlPanelDef
|
org.eclipse.sapphire.ui.forms.HtmlPanelDef
|
Before |
After |
org.eclipse.sapphire.ui.HtmlPanelPart
|
org.eclipse.sapphire.ui.forms.HtmlPanelPart
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.modeling.ImageData
|
org.eclipse.sapphire.ImageData
|
ImageData.readFromStream( stream )
|
ImageData.readFromStream( stream ).optional()
|
ImageData.readFromUrl( url )
|
ImageData.readFromUrl( url ).optional()
|
ImageData.readFromClassLoader( cl, path )
|
ImageData.readFromClassLoader( cl, path ).optional()
|
ImageData.createFromStream( stream )
|
ImageData.readFromStream( stream ).required()
|
ImageData.createFromUrl( url )
|
ImageData.readFromUrl( url ).required()
|
ImageData.createFromClassLoader( cl, path )
|
ImageData.readFromClassLoader( cl, path ).required()
|
Before |
After |
org.eclipse.sapphire.services.ImageService
|
org.eclipse.sapphire.ImageService
|
public class ExampleImageService extends ImageService
{
@Override
protected ImageServiceData compute()
{
ImageData image = ...
return new ImageServiceData( image );
}
}
|
public class ExampleImageService extends ImageService
{
@Override
protected ImageData compute()
{
ImageData image = ...
return image;
}
}
|
Before |
After |
org.eclipse.sapphire.ui.diagram.def.IDiagramEditorPageDef
|
org.eclipse.sapphire.ui.diagram.def.DiagramEditorPageDef
|
Before |
After |
org.eclipse.sapphire.modeling.IExecutableModelElement
|
org.eclipse.sapphire.ExecutableElement
|
Before |
After |
org.eclipse.sapphire.ui.def.IFormPartInclude
|
org.eclipse.sapphire.ui.forms.FormComponentRef
|
Before |
After |
org.eclipse.sapphire.modeling.IModelElement
|
org.eclipse.sapphire.Element
|
IModelParticle root = element.root()
|
Element root = element.root()
|
IModelParticle parent = element.parent()
|
Property parent = element.parent()
|
element.getParentProperty()
|
element.parent().definition()
|
List<ModelProperty> properties = element.properties()
|
SortedSet<PropertyDef> properties = element.type().properties()
|
element.property( "ExampleProperty" )
|
element.property( "ExampleProperty" ).definition()
|
element.read( "ExampleProperty" )
|
element.property( "ExampleProperty" )
|
element.read( ExampleElement.PROP_EXAMPLE )
|
element.property( ExampleElement.PROP_EXAMPLE )
|
SortedSet<String> strings = element.read( path );
|
SortedSet<String> strings = new TreeSet<String>();
element.visit
(
path,
new PropertyVisitor()
{
@Override
public boolean visit( Value<?> property )
{
strings.add( property.text() );
return true;
}
}
);
|
SortedSet<String> strings = new TreeSet<String>();
element.read( path, strings );
|
SortedSet<String> strings = new TreeSet<String>();
element.visit
(
path,
new PropertyVisitor()
{
@Override
public boolean visit( Value<?> property )
{
strings.add( property.text() );
return true;
}
}
);
|
element.write( ExampleElement.PROP_VALUE, content )
|
element.property( ExampleElement.PROP_VALUE ).write( content )
|
element.write( ExampleElement.PROP_TRANSIENT, content )
|
element.property( ExampleElement.PROP_TRANSIENT ).write( content )
|
element.write( "ExampleProperty", content )
|
( (Value<?>) element.property( "ExampleProperty" ) ).write( content )
( (Transient<?>) element.property( "ExampleProperty" ) ).write( content )
|
element.refresh( force )
element.refresh( force, deep )
|
element.refresh()
|
element.refresh( "ExampleProperty" )
element.refresh( "ExampleProperty", force )
element.refresh( "ExampleProperty", force, deep )
|
element.property( "ExampleProperty" ).refresh()
|
element.refresh( ExampleElement.PROP_EXAMPLE )
element.refresh( ExampleElement.PROP_EXAMPLE, force )
element.refresh( ExampleElement.PROP_EXAMPLE, force, deep )
|
element.property( ExampleElement.PROP_EXAMPLE ).refresh()
|
element.service( "ExampleProperty", ExampleService.class )
|
element.property( "ExampleProperty" ).service( ExampleService.class )
|
element.service( ExampleElement.PROP_EXAMPLE, ExampleService.class )
|
element.property( ExampleElement.PROP_EXAMPLE ).service( ExampleService.class )
|
element.services( "ExampleProperty", ExampleService.class )
|
element.property( "ExampleProperty" ).services( ExampleService.class )
|
element.services( ExampleElement.PROP_EXAMPLE, ExampleService.class )
|
element.property( ExampleElement.PROP_EXAMPLE ).services( ExampleService.class )
|
element.enabled( "ExampleProperty" )
|
element.property( "ExampleProperty" ).enabled()
|
element.enabled( ExampleElement.PROP_EXAMPLE )
|
element.property( ExampleElement.PROP_EXAMPLE ).enabled()
|
element.empty( "ExampleProperty" )
|
element.property( "ExampleProperty" ).empty()
|
element.empty( ExampleElement.PROP_EXAMPLE )
|
element.property( ExampleElement.PROP_EXAMPLE ).empty()
|
element.validation( "ExampleProperty" )
|
element.property( "ExampleProperty" ).validation()
|
element.validation( ExampleElement.PROP_EXAMPLE )
|
element.property( ExampleElement.PROP_EXAMPLE ).validation()
|
element.attach( listener, ExampleElement.PROP_EXAMPLE )
|
element.property( ExampleElement.PROP_EXAMPLE ).attach( listener )
|
element.detach( listener, ExampleElement.PROP_EXAMPLE )
|
element.property( ExampleElement.PROP_EXAMPLE ).detach( listener )
|
This interface has been removed and no direct analog has been provided. Reference Element and Property classes directly.
Before |
After |
org.eclipse.sapphire.modeling.ImpliedElementProperty
|
org.eclipse.sapphire.ImpliedElementProperty
|
Before |
After |
org.eclipse.sapphire.ui.def.IPropertiesViewContributionDef
|
org.eclipse.sapphire.ui.forms.PropertiesViewContributionDef
|
Before |
After |
org.eclipse.sapphire.ui.def.IPropertiesViewContributionPageDef
|
org.eclipse.sapphire.ui.forms.PropertiesViewPageDef
|
Before |
After |
org.eclipse.sapphire.ui.def.IPropertiesViewContributorDef
|
org.eclipse.sapphire.ui.forms.PropertiesViewContributorDef
|
Before |
After |
org.eclipse.sapphire.ui.IPropertiesViewContributorPart
|
org.eclipse.sapphire.ui.forms.PropertiesViewContributorPart
|
Before |
After |
org.eclipse.sapphire.ui.def.ISapphireCustomPartDef
|
org.eclipse.sapphire.ui.forms.CustomFormComponentDef
|
Before |
After |
org.eclipse.sapphire.ui.def.ISapphireGroupDef
|
org.eclipse.sapphire.ui.forms.GroupDef
|
Before |
After |
org.eclipse.sapphire.ui.def.ISapphireLabelDef
|
org.eclipse.sapphire.ui.forms.TextDef
|
Before |
After |
org.eclipse.sapphire.ui.def.ISapphireStaticTextFieldDef
|
org.eclipse.sapphire.ui.forms.StaticTextFieldDef
|
Before |
After |
Class<?> cl = type.artifact();
|
Class<?> cl = (Class<?>) type.artifact();
|
Before |
After |
org.eclipse.sapphire.ui.LabelPart
|
org.eclipse.sapphire.ui.forms.TextPart
|
Before |
After |
org.eclipse.sapphire.modeling.LayeredListBindingImpl
|
org.eclipse.sapphire.LayeredListPropertyBinding
|
Before |
After |
org.eclipse.sapphire.ui.def.LineSeparatorDef
|
org.eclipse.sapphire.ui.forms.LineSeparatorDef
|
Before |
After |
org.eclipse.sapphire.ui.LineSeparatorPart
|
org.eclipse.sapphire.ui.forms.LineSeparatorPart
|
Before |
After |
org.eclipse.sapphire.modeling.ListBindingImpl
|
org.eclipse.sapphire.ListPropertyBinding
|
Before |
After |
org.eclipse.sapphire.modeling.ListProperty
|
org.eclipse.sapphire.ListProperty
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.ListPropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.ListPropertyEditorPresentation
|
getList()
|
list()
|
Before |
After |
org.eclipse.sapphire.modeling.LoggingService
|
org.eclipse.sapphire.LoggingService
|
LoggingService.log( ... )
|
Sapphire.service( LoggingService.class ).log( ... )
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.MasterDetailsContentNode
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentNodePart
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.def.MasterDetailsContentNodeChildDef
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentNodeChildDef
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.def.MasterDetailsContentNodeDef
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentNodeDef
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.def.MasterDetailsContentNodeFactoryCaseDef
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentNodeFactoryCaseDef
|
property Type
|
property ElementType
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.def.MasterDetailsContentNodeFactoryDef
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentNodeFactoryDef
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.def.MasterDetailsContentNodeInclude
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentNodeRef
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.MasterDetailsContentNodeList
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentNodeList
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.MasterDetailsContentOutline
|
org.eclipse.sapphire.ui.forms.MasterDetailsContentOutline
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.MasterDetailsEditorPage
|
org.eclipse.sapphire.ui.forms.swt.MasterDetailsEditorPage
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.def.MasterDetailsEditorPageDef
|
org.eclipse.sapphire.ui.forms.MasterDetailsEditorPageDef
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.MasterDetailsEditorPagePart
|
org.eclipse.sapphire.ui.forms.MasterDetailsEditorPagePart
|
MasterDetailsEditorPageState state = page.getState();
|
MasterDetailsEditorPageState state = page.state();
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.state.MasterDetailsEditorPageState
|
org.eclipse.sapphire.ui.forms.MasterDetailsEditorPageState
|
Before |
After |
org.eclipse.sapphire.modeling.ModelElementHandle
|
org.eclipse.sapphire.ElementHandle
|
IModelParticle root = handle.root()
|
Element root = handle.root()
|
IModelParticle parent = handle.parent()
|
Element parent = handle.element()
|
handle.adapt( Example.class )
|
handle.element().adapt( Example.class )
|
handle.getProperty()
|
handle.definition()
|
handle.element()
|
handle.content()
|
handle.element( createIfNecessary )
|
handle.content( createIfNecessary )
|
handle.element( createIfNecessary, type )
|
handle.content( createIfNecessary, type )
|
handle.remove()
|
handle.clear()
|
handle.removable()
|
handle.definition() instanceof ImplementElementProperty
|
Status validation = handle.validation()
Status validation = handle.validation( true )
|
Status.CompositeStatusFactory factory = Status.factoryForComposite();
factory.merge( handle.validation() );
Element child = handle.content();
if( child != null )
{
factory.merge( child.validation() );
}
Status validation = factory.create();
|
Before |
After |
org.eclipse.sapphire.modeling.ModelElementList
|
org.eclipse.sapphire.ElementList
|
IModelParticle root = list.root()
|
Element root = list.root()
|
IModelParticle parent = list.parent()
|
Element parent = list.element()
|
list.adapt( Example.class )
|
list.element().adapt( Example.class )
|
list.getParentProperty()
|
list.definition()
|
Status validation = list.validation()
|
Status.CompositeStatusFactory factory = Status.factoryForComposite();
factory.merge( list.validation() );
for( Element child : list )
{
factory.merge( child.validation() );
}
Status validation = factory.create();
|
This class is not longer available and no analog has been provided.
With the switch to on-demand element compilation, the developer no longer has control over the name
of the generated implementation class. As such, the following methods have been removed and no direct
equivalents have been provided. For further guidance, post a question
on Sapphire Adopter Forum.
ModelElementType
{
Class> getImplClass()
String getImplClassName( Class> elementTypeClass )
String getImplClassName( String elementTypeClassName, GenerateImpl generateImplAnnotation )
String getImplClassName( String elementTypeClassName, String preferredImplPackageName, String preferredImplClassName )
}
Before |
After |
org.eclipse.sapphire.modeling.ModelElementType
|
org.eclipse.sapphire.ElementType
|
List<ModelProperty> properties = type.properties()
|
SortedSet<ModelProperty> properties = type.properties()
|
type.instantiate( element, pdef, resource )
|
type.instantiate( element.property( pdef ), resource )
|
Before |
After |
org.eclipse.sapphire.modeling.ModelProperty
|
org.eclipse.sapphire.PropertyDef
|
property.getName()
|
property.name()
|
This class is not longer available and no analog has been provided.
Before |
After |
public final class Resources extends NLS
{
public static String title;
public static String message;
static
{
initializeMessages( Resources.class.getName(), Resources.class );
}
}
|
public final class Resources
{
public static LocalizableText title;
public static LocalizableText message;
static
{
LocalizableText.init( Resources.class );
}
}
|
String text = Resources.title;
|
String text = Resources.title.text();
|
String text = NLS.bind( Resources.message, x, y );
|
String text = Resources.message.format( x, y );
|
Before |
After |
org.eclipse.sapphire.ui.def.PageBookDef
|
org.eclipse.sapphire.ui.forms.PageBookDef
|
property Pages
|
property Cases
|
property DefaultPage
|
This property is not longer available and no analog has been provided.
|
Before |
After |
org.eclipse.sapphire.ui.def.PageBookExtDef
|
org.eclipse.sapphire.ui.forms.PageBookDef
|
Before |
After |
org.eclipse.sapphire.ui.def.PageBookKeyMapping
|
org.eclipse.sapphire.ui.forms.PageBookCaseDef
|
property Key
|
property ElementType
|
Before |
After |
org.eclipse.sapphire.ui.PageBookPart
|
org.eclipse.sapphire.ui.forms.PageBookPart
|
This class is not longer available and no analog has been provided.
Before |
After |
public class ExamplePossibleValuesService extends PossibleValuesService
{
protected void fillPossibleValues( SortedSet<String> values )
{
...
}
}
|
public class ExamplePossibleValuesService extends PossibleValuesService
{
protected void fillPossibleValues( Set<String> values )
{
...
}
}
|
SortedSet<String> values = possibleValuesService.values();
|
Set<String> values = possibleValuesService.values();
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.ProblemsTraversalService
|
org.eclipse.sapphire.ui.forms.ProblemsTraversalService
|
Before |
After |
org.eclipse.sapphire.ui.form.editors.masterdetails.ProblemsTraversalServiceData
|
org.eclipse.sapphire.ui.forms.ProblemsTraversalServiceData
|
Before |
After |
org.eclipse.sapphire.ui.swt.ProgressMonitorBridge
|
org.eclipse.sapphire.platform.ProgressMonitorBridge
|
Before |
After |
org.eclipse.sapphire.ui.PropertiesViewContributionManager
|
org.eclipse.sapphire.ui.forms.PropertiesViewContributionManager
|
Before |
After |
org.eclipse.sapphire.ui.PropertiesViewContributionPagePart
|
org.eclipse.sapphire.ui.forms.PropertiesViewPagePart
|
Before |
After |
org.eclipse.sapphire.ui.PropertiesViewContributionPart
|
org.eclipse.sapphire.ui.forms.PropertiesViewContributionPart
|
Before |
After |
org.eclipse.sapphire.modeling.PropertyContentEvent
|
org.eclipse.sapphire.PropertyContentEvent
|
Before |
After |
org.eclipse.sapphire.ui.PropertyEditorPart
|
org.eclipse.sapphire.ui.forms.PropertyEditorPart
|
getLabel( ... )
|
label( ... )
|
getShowLabel()
|
label() != null
|
Before |
After |
public class ExampleContributor extends PropertyEditorAssistContributor
{
@Override
public void init( IModelElement element, ModelProperty property )
{
if( property != null )
{
...
}
}
}
|
public class ExampleContributor extends PropertyEditorAssistContributor
{
@Override
public void init( SapphirePart part )
{
Element element = part.getLocalModelElement();
if( part instanceof PropertyEditorPart )
{
PropertyDef property = ( (PropertyEditorPart) part ).property().definition();
...
}
}
}
|
Before |
After |
context.getModelElement()
|
context.getPart().getLocalModelElement()
|
context.getProperty()
|
( (PropertyEditorPart) context.getPart() ).property().definition()
|
context.isPropertyEditorReadOnly()
|
( (PropertyEditorPart) context.getPart() ).isReadOnly()
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.PropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.PropertyEditorPresentation
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.PropertyEditorRendererFactory
|
org.eclipse.sapphire.ui.forms.swt.PropertyEditorPresentationFactory
|
public class ExamplePropertyEditorRenderFactory extends PropertyEditorRendererFactory
{
@Override
public boolean isApplicableTo( PropertyEditorPart part )
{
...
}
@Override
public PropertyEditorRenderer create( SapphireRenderingContext context,
PropertyEditorPart part )
{
return new ExamplePropertyEditorRender( context, part );
}
}
|
public class ExamplePropertyEditorPresentationFactory extends PropertyEditorPresentationFactory
{
private boolean isApplicableTo( PropertyEditorPart part )
{
...
}
@Override
public PropertyEditorPresentation create( PropertyEditorPart part,
SwtPresentation parent,
Composite composite )
{
if( isApplicable( part ) )
{
return new ExamplePropertyEditorPresentation( part, parent, composite );
}
return null;
}
}
|
Before |
After |
org.eclipse.sapphire.modeling.PropertyEnablementEvent
|
org.eclipse.sapphire.PropertyEnablementEvent
|
Before |
After |
org.eclipse.sapphire.modeling.PropertyEvent
|
org.eclipse.sapphire.PropertyEvent
|
event.element()
|
event.property().element()
|
As an optimization, property initialization events are no longer broadcast.
Before |
After |
org.eclipse.sapphire.modeling.PropertyValidationEvent
|
org.eclipse.sapphire.PropertyValidationEvent
|
Before |
After |
org.eclipse.sapphire.modeling.ReferenceValue
|
org.eclipse.sapphire.ReferenceValue
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.actions.RelativePathBrowseActionHandler
|
org.eclipse.sapphire.ui.forms.swt.RelativePathBrowseActionHandler
|
Before |
After |
org.eclipse.sapphire.modeling.Resource
|
org.eclipse.sapphire.Resource
|
public class ExampleResource extends Resource
{
@Override
protected BindingImpl createBinding( ModelProperty pdef )
{
...
}
}
|
public class ExampleResource extends Resource
{
@Override
protected PropertyBinding createBinding( Property property )
{
PropertyDef pdef = property.definition();
...
}
}
|
Before |
After |
public class ExampleActionHandler extends SapphireActionHandler
{
@Override
protected Object run( SapphireRenderingContext context )
{
Shell shell = context.getShell();
...
}
}
|
public class ExampleActionHandler extends SapphireActionHandler
{
@Override
protected Object run( Presentation context )
{
Shell shell = ( (SwtPresentation) context ).shell();
...
}
}
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireActionPresentation
|
org.eclipse.sapphire.ui.forms.swt.SapphireActionPresentation
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireActionPresentationManager
|
org.eclipse.sapphire.ui.forms.swt.SapphireActionPresentationManager
|
Before |
After |
org.eclipse.sapphire.ui.SapphireBrowseActionHandler
|
org.eclipse.sapphire.ui.forms.BrowseActionHandler
|
public class ExampleBrowseActionHandler extends SapphireBrowseActionHandler
{
@Override
protected String browse( SapphireRenderingContext context )
{
Shell shell = context.getShell();
...
}
}
|
public class ExampleBrowseActionHandler extends BrowseActionHandler
{
@Override
protected String browse( Presentation context )
{
Shell shell = ( (SwtPresentation) context ).shell();
...
}
}
|
Before |
After |
DiagramEditorPageState state = page.getState();
|
DiagramEditorPageState state = page.state();
|
Before |
After |
org.eclipse.sapphire.ui.swt.SapphireDialog
|
org.eclipse.sapphire.ui.forms.swt.SapphireDialog
|
public class CustomDialog extends SapphireDialog
{
@Override
protected void okPressed()
{
...
if( success )
{
super.okPressed();
}
}
}
|
public class CustomDialog extends SapphireDialog
{
@Override
protected boolean performOkOperation()
{
...
return success;
}
}
|
Before |
After |
org.eclipse.sapphire.ui.SapphireDialogPart
|
org.eclipse.sapphire.ui.forms.DialogPart
|
The following method has been removed and no direct equivalent have been provided. For further guidance, post a question
on Sapphire Adopter Forum.
SapphireEditor
{
File getDefaultStateStorageFile( SapphireEditorPagePart part )
}
Before |
After |
org.eclipse.sapphire.ui.SapphireEditorFormPage
|
org.eclipse.sapphire.ui.forms.swt.SapphireEditorFormPage
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.swt.SapphireForm
|
org.eclipse.sapphire.ui.forms.swt.SapphireForm
|
Before |
After |
org.eclipse.sapphire.ui.SapphireGroup
|
org.eclipse.sapphire.ui.forms.GroupPart
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireHotSpotsActionPresentation
|
org.eclipse.sapphire.ui.forms.swt.SapphireHotSpotsActionPresentation
|
Before |
After |
org.eclipse.sapphire.ui.SapphireJumpActionHandler
|
org.eclipse.sapphire.ui.forms.JumpActionHandler
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireKeyboardActionPresentation
|
org.eclipse.sapphire.ui.forms.swt.SapphireKeyboardActionPresentation
|
Before |
After |
org.eclipse.sapphire.ui.SapphireListControlledPageBook
|
org.eclipse.sapphire.ui.forms.DetailSectionPart
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireMenuActionPresentation
|
org.eclipse.sapphire.ui.forms.swt.SapphireMenuActionPresentation
|
Before |
After |
getParentPart()
|
parent()
|
getImageCache()
|
getSwtResourceCache()
|
public class ExamplePart extends SapphirePart
{
@Override
public void render( SapphireRenderingContext context )
{
...
}
}
|
public class ExamplePart extends FormComponentPart
{
@Override
public FormComponentPresentation createPresentation( SwtPresentation parent, Composite composite )
{
return new FormComponentPresentation( this, parent, composite )
{
@Override
public void render()
{
...
}
};
}
}
|
Before |
After |
org.eclipse.sapphire.ui.swt.SapphirePopup
|
org.eclipse.sapphire.ui.forms.swt.Popup
|
Before |
After |
org.eclipse.sapphire.ui.SapphirePropertyEditorActionHandler
|
org.eclipse.sapphire.ui.forms.PropertyEditorActionHandler
|
handler.getProperty()
|
handler.property().definition()
|
Before |
After |
org.eclipse.sapphire.ui.SapphirePropertyEditorCondition
|
org.eclipse.sapphire.ui.forms.PropertyEditorCondition
|
Before |
After |
org.eclipse.sapphire.ui.swt.SapphirePropertyPage
|
org.eclipse.sapphire.ui.forms.swt.SapphirePropertyPage
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.SapphireStaticTextField
|
org.eclipse.sapphire.ui.forms.StaticTextFieldPart
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireTextCellEditor
|
org.eclipse.sapphire.ui.forms.swt.SapphireTextCellEditor
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireToolBarActionPresentation
|
org.eclipse.sapphire.ui.forms.swt.SapphireToolBarActionPresentation
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SapphireToolBarManagerActionPresentation
|
org.eclipse.sapphire.ui.forms.swt.SapphireToolBarManagerActionPresentation
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.swt.SapphireWizard
|
org.eclipse.sapphire.ui.forms.swt.SapphireWizard
|
setDefaultPageImageDescriptor( ... )
|
<wizard>
<id>ExampleWizard</id>
<label>example wizard</label>
<image>...</image>
<page>
...
</page>
</wizard>
|
getShell()
|
getContainer().getShell()
|
public class ExampleWizard extends SapphireWizard<ExampleOp>
{
@Override
public void addPages()
{
super.addPages();
addPage( new CustomWizardPage() );
}
}
|
public class ExampleWizard extends SapphireWizard<ExampleOp>
{
private IWizardPage customWizardPage;
@Override
public IWizardPage[] getPages()
{
final IWizardPage[] pages = super.getPages();
final IWizardPage[] extended = new IWizardPage[ pages.length + 1 ];
System.arraycopy( pages, 0, extended, 0, pages.length );
if( this.customWizardPage == null )
{
this.customWizardPage = new CustomWizardPage();
this.customWizardPage.setWizard( this );
}
extended[ pages.length ] = this.customWizardPage;
return extended;
}
}
|
Before |
After |
org.eclipse.sapphire.ui.swt.SapphireWizardPage
|
org.eclipse.sapphire.ui.forms.swt.SapphireWizardPage
|
Before |
After |
org.eclipse.sapphire.ui.SapphireWizardPagePart
|
org.eclipse.sapphire.ui.forms.WizardPagePart
|
Before |
After |
org.eclipse.sapphire.ui.SapphireWizardPart
|
org.eclipse.sapphire.ui.forms.WizardPart
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.ui.def.SectionDef
|
org.eclipse.sapphire.ui.forms.SectionDef
|
Before |
After |
org.eclipse.sapphire.ui.SectionPart
|
org.eclipse.sapphire.ui.forms.SectionPart
|
Before |
After |
org.eclipse.sapphire.ui.def.SectionRef
|
org.eclipse.sapphire.ui.forms.SectionRef
|
Before |
After |
org.eclipse.sapphire.ui.def.SeparatorDef
|
org.eclipse.sapphire.ui.forms.SeparatorDef
|
Before |
After |
org.eclipse.sapphire.ui.SeparatorPart
|
org.eclipse.sapphire.ui.forms.SeparatorPart
|
Before |
After |
public class CustomValidationServiceFactory extends ServiceFactory
{
@Override
public boolean applicable( ServiceContext context, Class<? extends Service> service )
{
...
}
@Override
public Service create( ServiceContext context, Class<? extends Service> service )
{
return new CustomValidationService();
}
}
|
public class CustomValidationServiceCondition extends ServiceCondition
{
@Override
public boolean applicable( ServiceContext context )
{
...
}
}
|
<service>
<id>CustomValidationService</id>
<context>Sapphire.Property.Instance</context>
<type>org.eclipse.sapphire.services.ValidationService</type>
<factory>org.adopter.CustomValidationServiceFactory</factory>
</service>
|
<service>
<id>CustomValidationService</id>
<context>Sapphire.Property.Instance</context>
<implementation>org.adopter.CustomValidationService</implementation>
<condition>org.adopter.CustomValidationServiceCondition</condition>
</service>
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.SlushBucketPropertyEditor
|
org.eclipse.sapphire.ui.forms.swt.SlushBucketPropertyEditorPresentation
|
Before |
After |
org.eclipse.sapphire.ui.def.SplitFormBlockDef
|
org.eclipse.sapphire.ui.forms.SplitFormSectionDef
|
Before |
After |
org.eclipse.sapphire.ui.SplitFormBlockPart
|
org.eclipse.sapphire.ui.forms.SplitFormSectionPart
|
Before |
After |
org.eclipse.sapphire.ui.def.SplitFormDef
|
org.eclipse.sapphire.ui.forms.SplitFormDef
|
Before |
After |
org.eclipse.sapphire.ui.SplitFormPart
|
org.eclipse.sapphire.ui.forms.SplitFormPart
|
Before |
After |
public class ExampleBinding extends StandardXmlListBindingImpl
{
@Override
protected void initBindingMetadata( IModelElement element, ModelProperty property, String[] params )
{
...
}
}
|
public class ExampleBinding extends StandardXmlListBindingImpl
{
@Override
protected void initBindingMetadata()
{
Element element = property().element();
PropertyDef pdef = property().definition();
String[] params = pdef.getAnnotation( CustomXmlListBinding.class ).params();
...
}
}
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.SwtRendererUtil
|
org.eclipse.sapphire.ui.forms.swt.SwtUtil
|
Before |
After |
org.eclipse.sapphire.ui.swt.SwtResourceCache
|
org.eclipse.sapphire.ui.forms.swt.SwtResourceCache
|
Before |
After |
org.eclipse.sapphire.ui.swt.renderer.SwtUtil
|
org.eclipse.sapphire.ui.forms.swt.SwtUtil
|
Before |
After |
org.eclipse.sapphire.ui.def.TabGroupDef
|
org.eclipse.sapphire.ui.forms.TabGroupDef
|
Before |
After |
org.eclipse.sapphire.ui.def.TabGroupPageDef
|
org.eclipse.sapphire.ui.forms.TabGroupPageDef
|
Before |
After |
org.eclipse.sapphire.ui.TabGroupPagePart
|
org.eclipse.sapphire.ui.forms.TabGroupPagePart
|
Before |
After |
org.eclipse.sapphire.ui.TabGroupPart
|
org.eclipse.sapphire.ui.forms.TabGroupPart
|
Before |
After |
org.eclipse.sapphire.modeling.Transient
|
org.eclipse.sapphire.Transient
|
IModelParticle root = transient.root()
|
Element root = transient.root()
|
transient.parent()
|
transient.element()
|
transient.adapt( Example.class )
|
transient.element().adapt( Example.class )
|
transient.property()
|
transient.definition()
|
Before |
After |
org.eclipse.sapphire.modeling.TransientProperty
|
org.eclipse.sapphire.TransientProperty
|
Before |
After |
public class StringToVersionTypeCast extends TypeCast
{
@Override
public boolean applicable( FunctionContext context,
Function requestor,
Object value,
Class<?> target )
{
return ( target == Version.class && value instanceof String );
}
@Override
public Object evaluate( FunctionContext context,
Function requestor,
Object value,
Class<?> target )
{
Version result = null;
try
{
result = new Version( (String) value );
}
catch( IllegalArgumentException e )
{
// Intentionally ignored.
}
return null;
}
}
|
public class StringToVersionConversionService extends ConversionService<String,Version>
{
public StringToVersionConversionService()
{
super( String.class, Version.class );
}
@Override
public Version convert( String string )
{
Version result = null;
try
{
result = new Version( string );
}
catch( IllegalArgumentException e )
{
// Intentionally ignored.
}
return result;
}
}
|
<extension>
<type-cast>
<source>java.lang.String</source>
<target>org.eclipse.sapphire.Version</target>
<impl>org.eclipse.sapphire.modeling.el.internal.StringToVersionTypeCast</impl>
</type-cast>
</extension>
|
<extension>
<service>
<id>Sapphire.ConversionService.StringToVersion</id>
<implementation>org.eclipse.sapphire.internal.StringToVersionConversionService</implementation>
<context>Sapphire</context>
</service>
</extension>
|
Before |
After |
UrlResolver.resolve( referer, location )
|
URIResolverPlugin.createResolver().resolve( referer, null, location )
|
As an optimization, the aggregation intermediary to ValidationService has been removed. Adopters should not use ValidationService directly. Instead, access
validation using Property.validation() API. The property manages the interaction with ValidationService implementations.
Before |
After |
Status validation = property.service( ValidationAggregationService.class ).validation();
|
Status validation = property.validation()
|
Before |
After |
public class ExampleValidationService extends ValidationService
{
@Override
protected void init()
{
super.init();
...
inside a listener
{
broadcast();
}
}
@Override
public Status validate()
{
...
}
}
|
public class ExampleValidationService extends ValidationService
{
@Override
protected void initValidationService()
{
...
inside a listener
{
refresh();
}
}
@Override
protected Status compute()
{
...
}
}
|
Before |
After |
org.eclipse.sapphire.modeling.Value
|
org.eclipse.sapphire.Value
|
IModelParticle root = value.root()
|
Element root = value.root()
|
IModelParticle parent = value.parent()
|
Element parent = value.element()
|
value.adapt( Example.class )
|
value.element().adapt( Example.class )
|
value.getProperty()
|
value.definition()
|
value.getText()
|
value.text()
|
value.getText( useDefaultValue )
|
value.text( useDefaultValue )
|
value.getLocalizedText()
|
value.localized()
|
value.getLocalizedText( useDefaultValue )
|
value.localized( useDefaultValue )
|
value.getLocalizedText( capitalizationType, includeMnemonic )
|
value.localized( capitalizationType, includeMnemonic )
|
value.getLocalizedText( useDefaultValue, capitalizationType, includeMnemonic )
|
value.localized( useDefaultValue, capitalizationType, includeMnemonic )
|
value.getContent()
|
value.content()
|
value.getContent( useDefaultValue )
|
value.content( useDefaultValue )
|
value.isDefault()
|
value.empty()
|
value.isMalformed()
|
value.malformed()
|
Before |
After |
org.eclipse.sapphire.modeling.ValueBindingImpl
|
org.eclipse.sapphire.ValuePropertyBinding
|
This class is not longer available and no analog has been provided.
Before |
After |
org.eclipse.sapphire.modeling.ValueProperty
|
org.eclipse.sapphire.ValueProperty
|
Before |
After |
org.eclipse.sapphire.ui.renderers.swt.ValuePropertyEditorRenderer
|
org.eclipse.sapphire.ui.forms.swt.ValuePropertyEditorPresentation
|
Before |
After |
Integer num = (Integer) element.service( prop, ValueSerializationMasterService.class ).decode( str );
|
Integer num = element.service( prop, MasterConversionService.class ).convert( str, Integer.class );
|
String str = element.service( prop, ValueSerializationMasterService.class ).encode( num );
|
String str = element.service( prop, MasterConversionService.class ).convert( num, String.class );
|
Before |
After |
Integer num = (Integer) element.service( prop, ValueSerializationService.class ).decode( str );
|
Integer num = element.service( prop, MasterConversionService.class ).convert( str, Integer.class );
|
String str = element.service( prop, ValueSerializationService.class ).encode( num );
|
String str = element.service( prop, MasterConversionService.class ).convert( num, String.class );
|
public class ExampleSerializationService extends ValueSerializationService
{
@Override
protected ExampleType decodeFromString( String value )
{
...
}
public String encode( Object value )
{
...
}
}
|
public class StringToExampleTypeConversionService extends ConversionService<String,ExampleType>
{
public ExampleConversionService()
{
super( String.class, ExampleType.class );
}
@Override
public ExampleType convert( String value )
{
...
}
}
If the ValueSerializationService does not override the encode() method, then it is not necessary to supply a conversion to a string.
Sapphire includes a ConversionService implementation for converting an Object to a String that uses object's toString() method. This
matches the default implementation of the encode() method.
public class ExampleTypeToStringTypeConversionService extends ConversionService<ExampleType,String>
{
public ExampleConversionService()
{
super( ExampleType.class, String.class );
}
@Override
public String convert( ExampleType value )
{
...
}
}
|
Before |
After |
org.eclipse.sapphire.ui.def.WhitespaceSeparatorDef
|
org.eclipse.sapphire.ui.forms.SpacerDef
|
Before |
After |
org.eclipse.sapphire.ui.WhitespaceSeparatorPart
|
org.eclipse.sapphire.ui.forms.SpacerPart
|
Before |
After |
org.eclipse.sapphire.ui.def.WithDef
|
org.eclipse.sapphire.ui.forms.WithDef
|
Before |
After |
org.eclipse.sapphire.ui.WithPart
|
org.eclipse.sapphire.ui.forms.WithPart
|
Before |
After |
org.eclipse.sapphire.ui.WithPartImplied
|
org.eclipse.sapphire.ui.forms.WithImpliedPart
|
Before |
After |
org.eclipse.sapphire.ui.def.WizardDef
|
org.eclipse.sapphire.ui.forms.WizardDef
|
Before |
After |
org.eclipse.sapphire.ui.def.WizardPageDef
|
org.eclipse.sapphire.ui.forms.WizardPageDef
|
Before |
After |
XmlDocumentSchemasCache.getSchema( location, referer )
|
XmlDocumentSchemasCache.getSchema( referer, null, location )
|
Before |
After |
XmlResource resource = ...
XmlResource parent = resource.parent();
|
XmlResource resource = ...
XmlResource parent = (XmlResource) resource.parent();
|
XmlResource resource = ...
RootXmlResource root = resource.root();
|
XmlResource resource = ...
RootXmlResource root = (RootXmlResource) resource.root();
|
Services registered with an @Service annotation on an element or a property will now be placed
in either metamodel or instance context, instead of both. Instance context is default, which is the
most common intention when using the @Service annotation. Registrations of services intended for the
metamodel context will need an adjustment.
Before |
After |
@Service( impl = ExampleService.class )
|
@Service( impl = ExampleService.class, context = Service.Context.METAMODEL )
|
Before |
After |
<if>
<condition>${ ... }</condition>
<then>
...
</then>
<else>
...
</else>
</if>
|
<form>
<visible-when>${ ... }</visible-when>
<content>
...
</content>
</form>
<form>
<visible-when>${ ! ( ... ) }</visible-when>
<content>
...
</content>
</form>
|
<switching-panel>
<enum-controller>
<property>ExampleEnum</property>
</enum-controller>
<panel>
<key>ExampleEnum.ITEM1</key>
<content>
...
</content>
</panel>
<panel>
<key>ExampleEnum.ITEM2</key>
<content>
...
</content>
</panel>
<default-panel>
<content>
...
</content>
</default-panel>
<switching-panel>
|
<form>
<visible-when>${ ExampleEnum == "ITEM1" }</visible-when>
<content>
...
</content>
</form>
<form>
<visible-when>${ ExampleEnum == "ITEM2" }</visible-when>
<content>
...
</content>
</form>
<form>
<visible-when>${ ExampleEnum != "ITEM1" and ExampleEnum != "ITEM2" }</visible-when>
<content>
...
</content>
</form>
When comparing enum values in an expression, make sure to use strings as specified
by @EnumSerialization annotations (if present) rather than names of enum items in Java.
|
<switching-panel>
<list-selection-controller>
<property>...</property>
</list-selection-controller>
<panel>
<key>...</key>
<content>
...
</content>
</panel>
<panel>
<key>...</key>
<content>
...
</content>
</panel>
<default-panel>
<content>
...
</content>
</default-panel>
</switching-panel>
|
<detail-section>
<property>...</property>
<case>
<element-type>...</element-type>
<content>
...
</content>
</case>
<case>
<element-type>...</element-type>
<content>
...
</content>
</case>
</detail-section>
|
<with>
<path>...</path>
<panel>
<key>...</key>
<content>
...
</content>
</panel>
<panel>
<key>...</key>
<content>
...
</content>
</panel>
<default-panel>
<content>
...
</content>
</default-panel>
</with>
|
<with>
<path>...</path>
<case>
<element-type>...</element-type>
<content>
...
</content>
</case>
<case>
<element-type>...</element-type>
<content>
...
</content>
</case>
</with>
|
<with>
<path>...</path>
<default-panel>
<content>
...
</content>
</default-panel>
</with>
|
<with>
<path>...</path>
<case>
<content>
...
</content>
</case>
</with>
|
<node-factory>
<property>...</property>
<case>
<model-element-type>...</model-element-type>
<label>...</label>
<content>
...
</content>
</case>
</node-factory>
|
<node-factory>
<property>...</property>
<case>
<element-type>...</element-type>
<label>...</label>
<content>
...
</content>
</case>
</node-factory>
|
<hint>
<name>prefer.form.style</name>
<value>true</value>
</hint>
|
<background-color>white</background-color>
|
<hint>
<name>prefer.combo</name>
<value>true</value>
</hint>
|
<style>Sapphire.PropertyEditor.PopUpListField</style>
|
<hint>
<name>prefer.radio.buttons</name>
<value>true</value>
</hint>
|
<style>Sapphire.PropertyEditor.RadioButtonGroup</style>
|
<hint>
<name>prefer.vertical.radio.buttons</name>
<value>true</value>
</hint>
|
<style>Sapphire.PropertyEditor.RadioButtonGroup.Vertical</style>
|
<hint>
<name>factory</name>
<value>CheckBoxListPropertyEditorRenderer$Factory</value>
</hint>
|
<hint>
<name>factory</name>
<value>CheckBoxListPropertyEditorPresentation$Factory</value>
</hint>
|
<import>
<package>org.eclipse.sapphire.ui.renderers.swt</package>
</import>
|
<import>
<package>org.eclipse.sapphire.ui.forms.swt</package>
</import>
|