Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/ActivityDiagram.bmpbin396826 -> 1683562 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagram.bmpbin451758 -> 1678514 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagramEditorNewAgg.bmpbin0 -> 1437414 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/CommunicationDiagram.bmpbin270990 -> 1683702 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/CompositeStructure.bmpbin397334 -> 1683562 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.html2065
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.mediawiki601
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.pdfbin0 -> 1536775 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.txt817
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/SequenceDiagram.bmpbin423558 -> 1681038 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/StateDiagram.bmpbin488278 -> 1681038 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.uml.doc/resource/UCdiagram.bmpbin351882 -> 1681038 bytes
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core/plugin.xml7
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java30
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/PreferencesConstantsHelper.java6
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.model/META-INF/MANIFEST.MF3
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/META-INF/MANIFEST.MF3
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/PapyrusPreferenceStore.java213
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/Messages.java4
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/messages.properties2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/AbstractPreferenceKeyDialog.java220
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/ApplyValueOnPreferenceKeyDialog.java174
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF1
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.classpath7
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.project28
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/META-INF/MANIFEST.MF27
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/OSGI-INF/l10n/bundle.properties3
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/about.html28
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/build.properties9
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.pdoc4
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.xml39
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/Activator.java71
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertAllTablesHandler.java61
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertOldTableHandler.java422
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/Messages.java33
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/messages.properties9
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/editor/AbstractEMFNattableEditor.java84
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/META-INF/MANIFEST.MF1
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF1
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/importTablePapyrusWizban.pngbin0 -> 6414 bytes
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/import_wiz_16x16-papyrusColor.gifbin0 -> 541 bytes
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/warning.gifbin0 -> 331 bytes
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/plugin.xml34
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/Activator.java24
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusDefaultEditBindings.java63
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusGridLayerConfiguration.java12
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dialog/PasteImportStatusDialog.java97
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/AbstractTableHandler.java4
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/ImportTableHandler.java47
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/PasteInTableHandler.java51
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/AbstractPasteImportInNattableManager.java367
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/ImportAxisInNattableManager.java62
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/PasteAxisInNattableManager.java70
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/PasteInTableManager.java136
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/AbstractNattableWidgetManager.java2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/INattableModelManager.java14
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/NattableModelManager.java28
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/messages/Messages.java93
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/messages/messages.properties47
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/parsers/CSVLexer.java281
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/parsers/CSVParser.java219
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/parsers/CellIterator.java32
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/parsers/RewindableTextStream.java145
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/parsers/RowIterator.java32
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/paste/PasteSeparator.java101
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/paste/TextDelimiter.java74
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/preferences/PapyrusTablePreferenceStore.java68
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/preferences/TablePreferencesConstantsHelper.java87
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/PasteEObjectAxisInNattableCommandProvider.java840
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/PasteEObjectAxisInTableCommandProvider.java2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/TableSelectionProvider.java123
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/utils/CSVPasteHelper.java97
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/utils/CellHelper.java21
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/utils/PasteConfigurationUtils.java50
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/utils/PasteEnablementStatus.java98
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/utils/PasteHelper.java154
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/utils/PasteModeEnumeration.java9
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/utils/TableClipboardUtils.java23
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/wizard/ImportTableWizard.java142
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/wizard/pages/ImportCSVConfigurationPage.java218
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/wizard/pages/ImportFilePage.java184
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/wizard/pages/ImportInvertedTableErrorPage.java66
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/wizard/pages/ImportTableErrorPage.java67
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.tools/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/messages/Messages.java8
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/messages/messages.properties4
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/preferences/AbstractPapyrusPreferenceStore.java293
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/preferences/PapyrusScopedPreferenceStore.java (renamed from plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/PapyrusScopedPreferenceStore.java)12
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/preferences/ui/dialog/AbstractApplyValueOnPreferenceKeyDialog.java71
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/preferences/ui/dialog/AbstractPreferenceKeyDialog.java105
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/META-INF/MANIFEST.MF54
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/about.html28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/build.properties7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/icons/select_columns_to_show.pngbin433 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/icons/table.gifbin965 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/icons/table.pngbin1347 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/icons/table_green.gifbin994 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/icons/table_green.pngbin1390 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/plugin.properties3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/plugin.xml142
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/resources/table_Ecore_hideEAnnotationFeature.uiCustom10
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/Activator.java71
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/adapters/TableAdapterFactory.java44
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/adapters/TableOpenable.java44
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/advice/DeletePapyrusTableInstanceAdvice.java90
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/advice/TableDuplicateEditHelperAdvice.java404
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/dialog/TwoInputDialog.java134
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/editor/AbstractNattableEditor.java382
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/exceptions/ErrorInPastePreparationException.java34
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/factory/AbstractNattableEditorFactory.java207
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/factory/PapyrusCommandFactory.java312
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/handlers/AbstractCreateNattableEditorCommand.java516
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/IPapyrusNatTableWidget.java52
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/NatTableEditor.java460
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/PapyrusNatTableWidget.java263
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/internal/TableEditorInput.java77
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/listener/AbstractSynchronizedTableTriggerListener.java431
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/listener/ModelTriggerListener.java90
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/listener/TableTriggerListener.java88
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/messages/Messages.java42
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/messages/messages.properties7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/modelresource/EMFFacetNattableModel.java117
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/modelresource/PapyrusNattableModel.java118
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/FilteredTableLabelProvider.java37
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/TableLabelProvider.java85
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/util/FillingQueriesUtil.java30
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/util/QueryRepresentation.java69
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/META-INF/MANIFEST.MF22
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/about.html28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/build.properties8
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/plugin.properties12
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/plugin.xml11
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/src/org/eclipse/papyrus/infra/table/controlmode/Activator.java30
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/src/org/eclipse/papyrus/infra/table/controlmode/ControlTableCommand.java135
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.controlmode/src/org/eclipse/papyrus/infra/table/controlmode/TableControlParticipant.java74
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/.classpath8
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/META-INF/MANIFEST.MF33
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/about.html28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/build.properties8
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/custom-src/org/eclipse/papyrus/infra/table/instance/util/TableContentsUtils.java200
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/model/papyrustableinstance.ecore48
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/model/papyrustableinstance.genmodel19
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/plugin.properties2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/plugin.xml20
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/Activator.java67
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/PapyrusTableInstance.java212
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/PapyrustableinstanceFactory.java46
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/PapyrustableinstancePackage.java332
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/impl/PapyrusTableInstanceImpl.java498
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/impl/PapyrustableinstanceFactoryImpl.java99
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/impl/PapyrustableinstancePackageImpl.java262
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/util/PapyrustableinstanceAdapterFactory.java143
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.instance/src/org/eclipse/papyrus/infra/table/instance/papyrustableinstance/util/PapyrustableinstanceSwitch.java131
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/META-INF/MANIFEST.MF29
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/about.html28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/build.properties7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/empty.gifbin919 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/empty.pngbin1341 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/not_NA.gifbin918 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/not_NA.pngbin1283 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/rename.gifbin922 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/select_column_to_hide.gifbin983 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/select_column_to_hide.pngbin1340 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/select_column_to_hide_2.gifbin982 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/select_column_to_hide_2.pngbin1333 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/icons/table.gifbin965 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/plugin.properties3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/plugin.xml319
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/Activator.java67
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/handler/AbstractTableExtensionContributionFactory.java61
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/handler/CommonColumnHandler.java56
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/handler/CreateNewElementInPopupContributionItem.java130
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/handler/CreateNewElementInTableMenuContributionItem.java212
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/handler/HideEmptyColumnsHandler.java50
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/messages/Messages.java34
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/messages/messages.properties3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.menu/src/org/eclipse/papyrus/infra/table/menu/providers/TableTester.java79
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/META-INF/MANIFEST.MF37
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/about.html28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/build.properties12
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/documentation.pdoc4
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/plugin.properties3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/plugin.xml59
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/resources/PapyrusTableFacet.facetSet12
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/resources/PapyrusTableFacetCustomization.uiCustom17
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/resources/PapyrusTableInstanceCustomization.uiCustom28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/resources/PapyrusTableQuery.querySet23
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/Activator.java121
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/handlers/AbstractTableModelExplorerHandler.java61
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/handlers/DeleteTableHandler.java71
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/handlers/DuplicateTableHandler.java82
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/handlers/RenameTableHandler.java84
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/messages/Messages.java34
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/messages/messages.properties3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/providers/TablePropertyTester.java85
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/queries/GetContainedTables.java65
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/queries/GetTableIcon.java31
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/queries/GetTableName.java31
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/src/org/eclipse/papyrus/infra/table/modelexplorer/queries/IsTableContainer.java63
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/META-INF/MANIFEST.MF32
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/about.html106
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/build.properties21
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/icons/full/ctool16/CreatePapyrusTableConfiguration_TableConfiguration_TableConfiguration2.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/icons/full/obj16/PapyrusTableConfiguration.gifbin129 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/plugin.properties35
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/plugin.xml31
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/provider/PapyrusTableConfigurationItemProvider.java256
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/provider/PapyrusTableConfigurationItemProviderAdapterFactory.java209
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.edit/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/provider/PapyrustableconfigurationEditPlugin.java120
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/META-INF/MANIFEST.MF29
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/about.html106
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/build.properties21
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/icons/full/obj16/PapyrusTableConfigurationModelFile.gifbin346 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/icons/full/wizban/NewPapyrusTableConfiguration.gifbin2462 -> 0 bytes
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/plugin.properties62
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/plugin.xml45
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/presentation/PapyrusTableConfigurationActionBarContributor.java433
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/presentation/PapyrusTableConfigurationEditor.java1848
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/presentation/PapyrusTableConfigurationModelWizard.java637
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel.editor/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/presentation/PapyrustableconfigurationEditorPlugin.java122
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/META-INF/MANIFEST.MF22
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/about.html106
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/build.properties21
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/model/papyrustableconfiguration.ecore14
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/model/papyrustableconfiguration.genmodel19
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/plugin.properties13
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/plugin.xml26
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/PapyrusTableConfiguration.java136
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/PapyrusTableConfigurationFactory.java52
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/PapyrusTableConfigurationPackage.java256
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/impl/PapyrusTableConfigurationFactoryImpl.java105
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/impl/PapyrusTableConfigurationImpl.java352
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/impl/PapyrusTableConfigurationPackageImpl.java232
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/util/PapyrusTableConfigurationAdapterFactory.java153
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.papyrustableconfiguration.metamodel/src-gen/org/eclipse/papyrus/infra/table/papyrustableconfiguration/metamodel/PapyrusTableConfiguration/util/PapyrusTableConfigurationSwitch.java141
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/.classpath7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/.project28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/META-INF/MANIFEST.MF28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/about.html28
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/build.properties7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/Environment.xmi4
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/papyrustableinstance.ctx38
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/papyrustableinstanceFieldSelection.xmi12
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/tableinstance.ctx359
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/tableinstance2.ctx148
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/tableinstance2FieldSelection.xmi20
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/tableinstanceFieldSelection.xmi56
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/Description.xwt10
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleAttributeColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleContextColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleDefaultLabelColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleEContainerColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleEObjectQueryRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleFacetAttributeColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleFacetFeatureColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleFacetReferenceColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleFeatureColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleMetaClassColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultiplePapyrusTableInstance.xwt16
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultiplePrimitiveTypeQueryRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleQueryColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleQueryRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleQueryTableInstance.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleQueryTableInstance2.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleReferenceColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleTableInstance.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleTableInstance2.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/MultipleValueColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleAttributeColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleContextColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleDefaultLabelColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleEContainerColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleEObjectQueryRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleFacetAttributeColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleFacetFeatureColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleFacetReferenceColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleFeatureColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleMetaClassColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SinglePapyrusTableInstance.xwt76
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SinglePrimitiveTypeQueryRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleQueryColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleQueryRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleQueryTableInstance.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleQueryTableInstance2.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleReferenceColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleRow.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleTableInstance.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleTableInstance2.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/model/ui/SingleValueColumn.xwt2
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/plugin.properties3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/plugin.xml23
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/Activator.java69
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/messages/Messages.java17
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/messages/messages.properties1
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/modelelement/PapyrusTableFactory.java51
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/modelelement/PapyrusTableModelElement.java159
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/provider/CustomizationContentProvider.java99
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/provider/CustomizationLabelProvider.java74
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/provider/ElementTypeContentProvider.java173
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/provider/FacetLabelProvider.java40
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/provider/FillingQueriesContentProvider.java164
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.properties/src/org/eclipse/papyrus/infra/table/properties/provider/PasteElementContainmentFeatureContentProvider.java70
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.parametric/META-INF/MANIFEST.MF2
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/.classpath7
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/.project28
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/META-INF/MANIFEST.MF33
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/README.txt7
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/about.html28
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/build.properties7
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.properties3
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.xml17
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/extendedsysml.genmodel20
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/extentedsysml.ecore12
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/portAndFlowsFacets.facetSet16
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/portAndFlowsQueries.querySet19
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsFacets.facetSet56
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsQueries.querySet80
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/sysml_profilefacet.facetSet270
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/sysml_profilefacet.querySet594
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/Activator.java45
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/extendedsysml/extendedsysml/portandflows/NAFlowPortDirection.java198
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/extendedsysml/extendedsysml/portandflows/PortandflowsFactory.java41
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/extendedsysml/extendedsysml/portandflows/PortandflowsPackage.java130
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/extendedsysml/extendedsysml/portandflows/impl/PortandflowsFactoryImpl.java149
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/extendedsysml/extendedsysml/portandflows/impl/PortandflowsPackageImpl.java173
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/messages/Messages.java40
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/messages/messages.properties6
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/portandflows/query/value/getter/GetFlowPortDirectionQuery.java37
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/portandflows/query/value/getter/GetFlowPortIsAtomicQuery.java42
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/portandflows/query/value/setter/SetFlowPortDirectionQuery.java73
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementBase_ClassQuery.java30
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedFromQuery.java40
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedQuery.java40
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementIdQuery.java30
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementMasterQuery.java30
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementRefinedByQuery.java33
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementSatifiedByQuery.java33
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTextQuery.java30
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTracedToQuery.java35
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementVerifiedByQuery.java38
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementDerivedFromQuery.java133
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementDerivedQuery.java133
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementIdQuery.java96
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementMasterQuery.java121
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementRefinedByQuery.java125
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementSatisfiedByQuery.java120
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementTextQuery.java92
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementTracedToQuery.java150
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementVerifiedByQuery.java120
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/.classpath7
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/.project29
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/META-INF/MANIFEST.MF36
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/about.html28
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/build.properties7
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/icons/allocation_table.gifbin978 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/icons/allocation_table.pngbin1360 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/icons/table_SysML_Allocation.gifbin898 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/icons/table_SysML_Allocation.pngbin1261 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/plugin.properties3
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/plugin.xml64
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.querySet19
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.tableconfiguration213
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/resources/table_SysML_Allocation_showOnlyClientAndSupplier.uiCustom90
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/Activator.java45
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableCommand.java86
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableFactory.java36
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/editor/AllocationTableEditor.java44
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAbstractionQuery.java69
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAllocateQuery.java69
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/IsAllocateQuery.java45
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/tester/AllocationPropertyTester.java62
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/.classpath7
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/.project29
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/META-INF/MANIFEST.MF36
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/about.html28
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/build.properties7
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/icons/table_SysML_Requirement.gifbin899 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/icons/table_SysML_Requirement.pngbin1262 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/icons/table_requirement.gifbin972 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/icons/table_requirement.pngbin1345 -> 0 bytes
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/plugin.properties3
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/plugin.xml65
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/resources/requirement.papyrustableconfiguration43
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/resources/requirements.tableconfiguration211
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/resources/requirementsTable.querySet14
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/resources/table_UML_Class_hideAllClassFeatures.uiCustom282
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/Activator.java48
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableCommand.java93
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableFactory.java29
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/editor/RequirementTableEditor.java46
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/CreateRequirement.java69
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/IsRequirement.java51
-rw-r--r--plugins/sysml/table/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/tester/RequirementPropertyTester.java56
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/META-INF/MANIFEST.MF1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.activity/custom-src/org/eclipse/papyrus/uml/diagram/activity/edit/dialogs/CreateInvocationActionDialog.java16
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/custom-src/org/eclipse/papyrus/uml/diagram/clazz/custom/figure/CustomContextLinkFigure.java6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/figure/edge/DashedEdgeFigure.java62
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.component/custom-src/org/eclipse/papyrus/uml/diagram/component/custom/figure/edges/UsageLinkFigure.java24
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.menu/META-INF/MANIFEST.MF5
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.menu/src/org/eclipse/papyrus/uml/diagram/menu/actions/ShowHideLabelsAction.java18
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence/custom-src/org/eclipse/papyrus/uml/diagram/sequence/figures/CustomContextLinkFigure.java6
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.statemachine/custom-src/org/eclipse/papyrus/uml/diagram/statemachine/custom/figures/TransitionFigure.java22
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/META-INF/MANIFEST.MF1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/custom-src/org/eclipse/papyrus/uml/diagram/usecase/ui/SubjectSelectionDialog.java8
-rw-r--r--plugins/uml/nattable/org.eclipse.papyrus.uml.nattable/META-INF/MANIFEST.MF4
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.search.ui/META-INF/MANIFEST.MF1
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/.classpath7
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/.project28
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/META-INF/MANIFEST.MF23
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/OSGI-INF/l10n/bundle.properties3
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/about.html106
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/build.properties9
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/plugin.pdoc12
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/src/org/eclipse/papyrus/uml/profilefacet/generation/Activator.java69
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/src/org/eclipse/papyrus/uml/profilefacet/generation/factory/ProfileFacetGenericFactory.java453
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/src/org/eclipse/papyrus/uml/profilefacet/generation/messages/Messages.java43
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.generation/src/org/eclipse/papyrus/uml/profilefacet/generation/messages/messages.properties7
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/.classpath7
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/.project28
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/META-INF/MANIFEST.MF19
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/about.html106
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/build.properties23
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/model/profilefacet.ecore70
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/model/profilefacet.genmodel32
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/plugin.pdoc12
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/plugin.properties13
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/plugin.xml26
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/EObjectFacetRepresentation.java64
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/ProfileFacetFactory.java80
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/ProfileFacetPackage.java1324
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/ProfileFacetSet.java80
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/StereotypeFacet.java72
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/StereotypePropertyElement.java91
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/StereotypePropertyFacetAttribute.java32
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/StereotypePropertyFacetReference.java32
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/impl/ProfileFacetFactoryImpl.java141
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/impl/ProfileFacetPackageImpl.java363
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/impl/ProfileFacetSetImpl.java477
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/impl/StereotypeFacetImpl.java402
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/impl/StereotypePropertyElementImpl.java435
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/impl/StereotypePropertyFacetAttributeImpl.java485
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/impl/StereotypePropertyFacetReferenceImpl.java485
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/util/ProfileFacetAdapterFactory.java489
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet.metamodel/src-gen/org/eclipse/papyrus/uml/profilefacet/metamodel/profilefacet/util/ProfileFacetSwitch.java483
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/.classpath7
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/.project28
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/META-INF/MANIFEST.MF36
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/OSGI-INF/l10n/bundle.properties3
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/about.html106
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/build.properties11
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/plugin.pdoc12
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/plugin.xml41
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/resources/uml_stereotype_queries.querySet189
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/Activator.java69
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/advice/DeleteProfileFacetSetAdvice.java227
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/controlmode/ProfileFacetSetControlParticipant.java57
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/listener/ReapplyProfileTriggerListener.java93
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/messages/Messages.java43
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/messages/messages.properties8
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetBooleanMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetBooleanSingleValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetDatatypeMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetDatatypeSingleValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetEObjectMultiReference.java47
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetEObjectSingleReference.java34
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetGenericMultiValue.java34
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetGenericSingleValue.java74
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetIntMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetIntSingleValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetPrimitiveTypeMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetPrimitiveTypeSingleValue.java19
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetRealMultiValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetRealSingleValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetStringMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetStringSingleValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetUMLEnumerationMultiValue.java76
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetUMLEnumerationSingleValue.java75
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetUnlimitedNaturalMultiValue.java19
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/getter/GetUnlimitedNaturalSingleValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/registry/QueryRegistry.java137
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetBooleanMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetBooleanSingleValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetDatatypeMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetDatatypeSingleValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetEObjectMultiReference.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetEObjectSingleReference.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetGenericMultiValue.java37
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetGenericSingleValue.java90
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetIntMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetIntSingleValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetPrimitiveTypeMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetPrimitiveTypeSingleValue.java19
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetRealMultiValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetRealSingleValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetStringMultiValue.java20
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetStringSingleValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetUMLEnumerationMultiValue.java22
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetUMLEnumerationSingleValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetUnlimitedNaturalMultiValue.java19
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/setter/SetUnlimitedNaturalSingleValue.java21
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/queries/tester/IsAppliedRequiredStereotype.java49
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/utils/AdditionalContentsUtils.java229
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/utils/ArgumentUtils.java29
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/utils/ModelQuerySetUtil.java62
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/utils/ProfileFacetSetDestroyer.java235
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/utils/ProfileFacetSetMoveHelper.java582
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/utils/ProfileFacetSetUpdater.java345
-rw-r--r--plugins/uml/profilefacet/org.eclipse.papyrus.uml.profilefacet/src/org/eclipse/papyrus/uml/profilefacet/utils/StereotypePropertyUtils.java170
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/.classpath7
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/.project28
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/META-INF/MANIFEST.MF34
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/OSGI-INF/l10n/bundle.properties3
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/about.html28
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/build.properties9
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/plugin.pdoc4
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/plugin.xml61
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/Activator.java67
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/dialog/ColumnsToShowDialog.java558
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/editor/AbstractUMLTableEditor.java38
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/factory/PapyrusTableInstanceCommandFactory.java58
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/handler/PasteInTableHandler.java326
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/handler/SelectAdditionColumnsPopupUpHandler.java206
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/handler/SelectColumnsHandler.java1038
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/listener/ApplyProfileTriggerListener.java36
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/menu/ContributionFactory.java77
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/messages/Messages.java90
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/messages/messages.properties32
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/AbstractAdditionalContentsProvider.java56
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/AbstractPasteInTableCommandProvider.java187
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/EMFFacetColumnsProvider.java65
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/IPasteInTableCommandProvider.java83
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/PasteInPapyrusTableCommandProvider.java720
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/ProfileFacetSetProvider.java158
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/SortedFeaturesContentProvider.java209
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/provider/UMLTablePropertyTester.java43
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/status/AbstractWarningPasteResultStatus.java172
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/status/PasteWarningStatus.java42
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/status/StereotypeApplicationErrorStatus.java52
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/status/UnresolvedReferenceErrorInPasteStatus.java61
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/utils/MultiValueContainer.java57
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/utils/ValueContainer.java99
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.common/src/org/eclipse/papyrus/uml/table/common/widget/FilteredCheckboxTree.java456
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/.classpath7
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/.project28
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/META-INF/MANIFEST.MF27
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/about.html28
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/build.properties13
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/icons/table.gifbin965 -> 0 bytes
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/icons/table.pngbin1347 -> 0 bytes
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/icons/table_UML_default.gifbin891 -> 0 bytes
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/icons/table_UML_default.pngbin1245 -> 0 bytes
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/plugin.properties12
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/plugin.xml102
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/resources/default.tableconfiguration24
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/src/org/eclipse/papyrus/uml/table/defaultt/Activator.java135
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/src/org/eclipse/papyrus/uml/table/defaultt/editor/DefaultNattableEditor.java49
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/src/org/eclipse/papyrus/uml/table/defaultt/factory/NattableEditorFactory.java39
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.default/src/org/eclipse/papyrus/uml/table/defaultt/handlers/CreateNattableEditorCommand.java60
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/.classpath7
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/.project28
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/META-INF/MANIFEST.MF31
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/about.html28
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/build.properties7
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/plugin.properties3
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/plugin.xml11
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/resources/umlCellEditors.modelcelleditors33
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/Activator.java73
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/composite/EnumComposite.java144
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/composite/EnumerationComposite.java91
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/composite/PapyrusEnumeratorComposite.java63
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/composite/UnaryReferencePapyrusCellEditorComposite.java330
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/BooleanCellEditor.java78
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/EnumerationLiteralCellEditor.java66
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/EnumeratorEditor.java85
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/IntCellEditor.java64
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/LiteralUnlimitedNaturalCellEditor.java65
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/NaryReferencePapyrusCellEditor.java143
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/StringMultiCellEditor.java77
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/editors/UnaryReferencePapyrusCellEditor.java128
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/utils/NoReferencedElement.java60
-rw-r--r--plugins/uml/table/org.eclipse.papyrus.uml.table.widgets.celleditors/src/org/eclipse/papyrus/uml/table/widget/celleditors/utils/StereotypePropertyFacetElementUtils.java70
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer.resourceloading/META-INF/MANIFEST.MF4
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer.widgets/META-INF/MANIFEST.MF4
615 files changed, 5312 insertions, 44657 deletions
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ActivityDiagram.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ActivityDiagram.bmp
index 2aa21b3082c..ce150ed16d0 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ActivityDiagram.bmp
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ActivityDiagram.bmp
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagram.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagram.bmp
index d402e4fdf81..ecbfd96c698 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagram.bmp
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagram.bmp
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagramEditorNewAgg.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagramEditorNewAgg.bmp
new file mode 100644
index 00000000000..a72ba31434c
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/ClassDiagramEditorNewAgg.bmp
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CommunicationDiagram.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CommunicationDiagram.bmp
index a462295f640..35e1cdd0c9f 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CommunicationDiagram.bmp
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CommunicationDiagram.bmp
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CompositeStructure.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CompositeStructure.bmp
index e4aa7ef2646..adbeeb8cfcb 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CompositeStructure.bmp
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/CompositeStructure.bmp
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.html b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.html
index 0a593307772..0eedcc90492 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.html
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.html
@@ -1,2061 +1,4 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-</head>
-<body>
- <h1 id="1_Overview">1 Overview</h1>
- <p>
- Papyrus is an environment for editing any kind of <a
- href="http://www.eclipse.org/modeling/emf/">EMF model</a>,
- particularly supporting UML 2 (<a
- href="http://www.omg.org/spec/UML/2.4.1/">Unified Modeling
- Language (UML) version 2.4.1</a> ) and related modeling languages such as
- SysML (<a href="http://www.omg.org/spec/SysML/">System Modeling
- Language</a> ) and MARTE (<a
- href="http://www.omg.org/omgmarte/Specification.htm/">Modeling
- and Analysis of Real-Time and Embedded systems</a> ). Papyrus also offers
- very advanced support of UML profiles that enables users to define
- editors for DSLs (Domain Specific Languages) based on the UML 2
- standard.
- </p>
- <p>
- Papyrus is a collection of plug-ins and features on top of the Eclipse
- framework. For more information about Eclipse, please go to the
- Eclipse web site <a href="http://www.eclipse.org/">eclipse.org</a>.
- Some of the terminology used in this Papyrus user guide are basic
- Eclipse concepts and briefly described here. To get more information
- about the Eclipse concepts, please visit the <i>Workbench User
- Guide</i> by selecting <b>Help &gt; Help Contents</b> from within
- Eclipse.
- </p>
- <h2 id="1.1_Table_of_Contents">1.1 Table of Contents</h2>
- <ol style="list-style: none;">
- <li><a href="#1_Overview">1 Overview</a>
- <ol style="list-style: none;">
- <li><a href="#1.1_Table_of_Contents">1.1 Table of Contents</a></li>
- </ol></li>
- <li><a href="#2_Introduction">2 Introduction</a>
- <ol style="list-style: none;">
- <li><a href="#2.1_Legend">2.1 Legend</a></li>
- </ol></li>
- <li><a href="#3_Installation">3 Installation</a>
- <ol style="list-style: none;">
- <li><a href="#3.1_Install_Eclipse_Standard">3.1 Install
- Eclipse Standard</a></li>
- <li><a href="#3.2_Install_basic_Papyrus">3.2 Install basic
- Papyrus</a></li>
- <li><a
- href="#3.3_Additional_installation_for_Papyrus_UML_RT_modeling">3.3
- Additional installation for Papyrus UML RT modeling</a></li>
- </ol></li>
- <li><a href="#4_Eclipse">4 Eclipse</a>
- <ol style="list-style: none;">
- <li><a href="#4.1_Architecture">4.1 Architecture</a></li>
- <li><a href="#4.2_Workspace">4.2 Workspace</a></li>
- <li><a href="#4.3_Resources">4.3 Resources</a></li>
- <li><a href="#4.4_Workbench">4.4 Workbench</a>
- <ol style="list-style: none;">
- <li><a href="#4.4.1_Views">4.4.1 Views</a>
- <ol style="list-style: none;">
- <li><a href="#4.4.1.1_Single_views">4.4.1.1 Single
- views</a></li>
- <li><a href="#4.4.1.2_Stacked_views">4.4.1.2 Stacked
- views</a></li>
- </ol></li>
- </ol></li>
- <li><a href="#4.5_Preferences">4.5 Preferences</a></li>
- <li><a href="#4.6_Import_and_Export">4.6 Import and Export</a></li>
- </ol></li>
- <li><a href="#5_Modeling">5 Modeling</a>
- <ol style="list-style: none;">
- <li><a href="#5.1_Model_and_diagrams">5.1 Model and
- diagrams</a></li>
- </ol></li>
- <li><a href="#6_Tutorials">6 Tutorials</a>
- <ol style="list-style: none;">
- <li><a href="#6.1_Getting_started">6.1 Getting started</a>
- <ol style="list-style: none;">
- <li><a href="#6.1.1_Exploring_perspectives">6.1.1
- Exploring perspectives</a>
- <ol style="list-style: none;">
- <li><a
- href="#6.1.1.1_Exploring_the_.27.27Papyrus.27.27_perspective">6.1.1.1
- Exploring the ''Papyrus'' perspective</a></li>
- <li><a
- href="#6.1.1.2_Exploring_and_customizing_the_Resource_perspective">6.1.1.2
- Exploring and customizing the Resource perspective</a></li>
- </ol></li>
- <li><a href="#6.1.2_Creating_a_project.2C_folder_and_files">6.1.2
- Creating a project, folder and files</a>
- <ol style="list-style: none;">
- <li><a href="#6.1.2.1_Creating_a_new_general_project">6.1.2.1
- Creating a new general project</a></li>
- <li><a href="#6.1.2.2_Creating_a_new_folder">6.1.2.2
- Creating a new folder</a></li>
- <li><a href="#6.1.2.3_Creating_and_editing_a_new_file">6.1.2.3
- Creating and editing a new file</a></li>
- <li><a href="#6.1.2.4_Creating_another_file">6.1.2.4
- Creating another file</a></li>
- </ol></li>
- <li><a href="#6.1.3_Exploring_editors_and_views">6.1.3
- Exploring editors and views</a>
- <ol style="list-style: none;">
- <li><a href="#6.1.3.1_Maximizing_and_restoring_an_editor">6.1.3.1
- Maximizing and restoring an editor</a></li>
- <li><a href="#6.1.3.2_Tiling_and_restacking_the_editors">6.1.3.2
- Tiling and restacking the editors</a></li>
- <li><a href="#6.1.3.3_Organizing_views">6.1.3.3
- Organizing views</a></li>
- <li><a href="#6.1.3.4_Using_view_menus">6.1.3.4 Using
- view menus</a></li>
- <li><a href="#6.1.3.5_Closing_and_opening_views">6.1.3.5
- Closing and opening views</a></li>
- </ol></li>
- <li><a href="#6.1.4_Exporting_and_importing_a_project">6.1.4
- Exporting and importing a project</a>
- <ol style="list-style: none;">
- <li><a href="#6.1.4.1_Exporting_a_project">6.1.4.1
- Exporting a project</a></li>
- <li><a
- href="#6.1.4.2_Removing_the_project_from_the_workspace">6.1.4.2
- Removing the project from the workspace</a></li>
- <li><a href="#6.1.4.3_Importing_a_project">6.1.4.3
- Importing a project</a></li>
- </ol></li>
- <li><a href="#6.1.5_Conclusion">6.1.5 Conclusion</a></li>
- </ol></li>
- <li><a href="#6.2_Creating_profiles">6.2 Creating profiles</a></li>
- <li><a href="#6.3_Creating_models">6.3 Creating models</a>
- <ol style="list-style: none;">
- <li><a href="#6.3.1_Use_case_modeling">6.3.1 Use case
- modeling</a></li>
- <li><a href="#6.3.2_Design_modeling">6.3.2 Design
- modeling</a></li>
- <li><a href="#6.3.3_RT_modeling">6.3.3 RT modeling</a></li>
- </ol></li>
- </ol></li>
- <li><a href="#7_Papyrus">7 Papyrus</a>
- <ol style="list-style: none;">
- <li><a href="#7.1_Papyrus_resources_in_the_workspace">7.1
- Papyrus resources in the workspace</a></li>
- <li><a href="#7.2_The_Papyrus_perspective">7.2 The Papyrus
- perspective</a>
- <ol style="list-style: none;">
- <li><a href="#7.2.1_Project_Explorer_view">7.2.1 Project
- Explorer view</a></li>
- <li><a href="#7.2.2_Model_Explorer_view">7.2.2 Model
- Explorer view</a></li>
- <li><a href="#7.2.3_Editing_view">7.2.3 Editing view</a></li>
- <li><a href="#7.2.4_Outline_view">7.2.4 Outline view</a></li>
- <li><a href="#7.2.5_Properties_view">7.2.5 Properties
- view</a></li>
- <li><a href="#7.2.6_Model_Validation_view">7.2.6 Model
- Validation view</a></li>
- <li><a href="#7.2.7_Search_view">7.2.7 Search view</a></li>
- </ol></li>
- <li><a href="#7.3_Diagram_editing_in_Papyrus">7.3 Diagram
- editing in Papyrus</a>
- <ol style="list-style: none;">
- <li><a href="#7.3.1_Diagram_editors">7.3.1 Diagram
- editors</a></li>
- <li><a href="#7.3.2_Basic_tool_techniques">7.3.2 Basic
- tool techniques</a>
- <ol style="list-style: none;">
- <li><a href="#7.3.2.1_Creating_diagrams">7.3.2.1
- Creating diagrams</a></li>
- <li><a href="#7.3.2.2_Scrolling_and_panning_in_diagrams">7.3.2.2
- Scrolling and panning in diagrams</a></li>
- <li><a href="#7.3.2.3_Creating_an_element_in_a_diagram">7.3.2.3
- Creating an element in a diagram</a></li>
- <li><a href="#7.3.2.4_Delete_and_hide">7.3.2.4 Delete
- and hide</a></li>
- <li><a href="#7.3.2.5_Formating_and_validating_diagrams">7.3.2.5
- Formating and validating diagrams</a></li>
- </ol></li>
- </ol></li>
- <li><a href="#7.4_UML_modeling">7.4 UML modeling</a>
- <ol style="list-style: none;">
- <li><a href="#7.4.1_Diagrams">7.4.1 Diagrams</a>
- <ol style="list-style: none;">
- <li><a href="#7.4.1.1_Diagrams_related_to_Use_Cases">7.4.1.1
- Diagrams related to Use Cases</a>
- <ol style="list-style: none;">
- <li><a href="#7.4.1.1.1_Use_case_diagram">7.4.1.1.1
- Use case diagram</a></li>
- <li><a href="#7.4.1.1.2_Activity_diagram">7.4.1.1.2
- Activity diagram</a></li>
- <li><a href="#7.4.1.1.3_Interaction_diagrams">7.4.1.1.3
- Interaction diagrams</a>
- <ol style="list-style: none;">
- <li><a href="#7.4.1.1.3.1_Sequence_diagram">7.4.1.1.3.1
- Sequence diagram</a></li>
- <li><a href="#7.4.1.1.3.2_Communication_diagram">7.4.1.1.3.2
- Communication diagram</a></li>
- </ol></li>
- </ol></li>
- <li><a href="#7.4.1.2_Diagrams_related_to_Classes">7.4.1.2
- Diagrams related to Classes</a>
- <ol style="list-style: none;">
- <li><a href="#7.4.1.2.1_Class_diagram">7.4.1.2.1
- Class diagram</a></li>
- <li><a href="#7.4.1.2.2_Composite_structure_diagram">7.4.1.2.2
- Composite structure diagram</a></li>
- <li><a href="#7.4.1.2.3_State_machine_diagram">7.4.1.2.3
- State machine diagram</a></li>
- </ol></li>
- </ol></li>
- <li><a href="#7.4.2_Model_elements">7.4.2 Model elements</a>
- <ol style="list-style: none;">
- <li><a href="#7.4.2.1_Package">7.4.2.1 Package</a></li>
- <li><a href="#7.4.2.2_Use_Case">7.4.2.2 Use Case</a></li>
- <li><a href="#7.4.2.3_Actor">7.4.2.3 Actor</a></li>
- <li><a href="#7.4.2.4_Class">7.4.2.4 Class</a>
- <ol style="list-style: none;">
- <li><a href="#7.4.2.5.1_Attributes_on_Classes">7.4.2.5.1
- Attributes on Classes</a></li>
- <li><a href="#7.4.2.5.2_Operations_on_Classes">7.4.2.5.2
- Operations on Classes</a></li>
- </ol></li>
- </ol></li>
- <li><a href="#7.4.3_Relationships">7.4.3 Relationships</a></li>
- </ol></li>
- <li><a href="#7.5_UML_RT_modeling">7.5 UML RT modeling</a>
- <ol style="list-style: none;">
- <li><a href="#7.5.1_Additional_modeling_elements">7.5.1
- Additional modeling elements</a>
- <ol style="list-style: none;">
- <li><a href="#7.5.1.1_Capsule_Class">7.5.1.1 Capsule
- Class</a></li>
- <li><a href="#7.5.1.2_Protocol_Class">7.5.1.2 Protocol
- Class</a></li>
- </ol></li>
- <li><a href="#7.5.2_Using_C_in_a_model">7.5.2 Using C in
- a model</a></li>
- <li><a href="#7.5.3_C_service_library">7.5.3 C service
- library</a>
- <ol style="list-style: none;">
- <li><a href="#7.5.3.1_Sending_messages">7.5.3.1 Sending
- messages</a></li>
- </ol></li>
- <li><a href="#7.5.4_Transformation_from_model_to_code">7.5.4
- Transformation from model to code</a></li>
- <li><a href="#7.5.5_Edit_the_generated_code">7.5.5 Edit
- the generated code</a></li>
- <li><a href="#7.5.6_Compiling_and_linking_the_generated_code">7.5.6
- Compiling and linking the generated code</a></li>
- <li><a href="#7.5.7_Using_external_libraries">7.5.7 Using
- external libraries</a></li>
- <li><a href="#7.5.8_Running_the_application">7.5.8
- Running the application</a></li>
- <li><a href="#7.5.9_Model_components">7.5.9 Model
- components</a></li>
- </ol></li>
- <li><a href="#7.6_Papyrus_in_a_team_environment">7.6
- Papyrus in a team environment</a>
- <ol style="list-style: none;">
- <li><a href="#7.6.1_Model_fragmentation">7.6.1 Model
- fragmentation</a></li>
- <li><a href="#7.6.2_Source_configuration_management">7.6.2
- Source configuration management</a></li>
- <li><a href="#7.6.3_Compare_and_Merge">7.6.3 Compare and
- Merge</a></li>
- </ol></li>
- <li><a href="#7.7_Model_validation">7.7 Model validation</a>
- <ol style="list-style: none;">
- <li><a href="#7.7.1_Object_Constrain_Language_.28OCL.29">7.7.1
- Object Constrain Language (OCL)</a></li>
- <li><a href="#7.7.2_Defining_constraints_using_OCL">7.7.2
- Defining constraints using OCL</a></li>
- </ol></li>
- <li><a href="#7.8_Searching">7.8 Searching</a></li>
- <li><a href="#7.9_Sample_models">7.9 Sample models</a>
- <ol style="list-style: none;">
- <li><a href="#7.9.1_Class_model_with_inheritance">7.9.1
- Class model with inheritance</a></li>
- <li><a href="#7.9.2_Send_and_receive_data">7.9.2 Send and
- receive data</a></li>
- <li><a href="#7.9.3_Interprocess_communication">7.9.3
- Interprocess communication</a></li>
- </ol></li>
- <li><a href="#7.10_UML_profiling">7.10 UML profiling</a></li>
- </ol></li>
- <li><a href="#8_Support">8 Support</a></li>
- <li><a href="#9_References">9 References</a></li>
- </ol>
- <h1 id="2_Introduction">2 Introduction</h1>
- <p>
- Papyrus is built on the extensible Eclipse framework and is an
- implementation of the OMG (Object Management Group) specification <a
- href="http://www.omg.org/spec/UML/2.4.1/">Unified Modeling
- Language (UML) version 2.4.1</a>. Papyrus is a comprehensive UML modeling
- environment, where many diagrams can be used to view different aspects
- of a system. Behind all diagrams, there is a model where all modeling
- elements, used in these diagrams, are kept. The model keeps the
- consistency between all diagrams.
- </p>
- <p>UML diagrams can help system architects and developers
- understand, collaborate on and develop an application. Architects and
- managers can use diagrams to visualize an entire system or project and
- separate applications into smaller components for development.</p>
- <p>System developers can use diagrams to specify, visualize, and
- document applications, which can increase efficiency and improve their
- application design.</p>
- <p>Since UML is very general, it is possible to adapt UML to
- specific domains. This is done by creating and applying UML profiles.
- Papyrus is a complete UML modeling environment and can also be used to
- develop UML profiles.</p>
- <h2 id="2.1_Legend">2.1 Legend</h2>
- <p>
- In this user guide, bold text is used for menu selections, e.g. <b>Help
- &gt; Welcome</b> means form the <b>Help</b> item on the main menu, select
- the <b>Welcome</b> item.
- </p>
- <p>
- A context menu is the pop up menu that appears when right clicking on
- something, e.g. right click on a class select <b>New Child &gt;
- Create a new Operation</b>, will create a new operation on the class,
- using the class' context menu.
- </p>
- <p>
- When a text should be typed in, it is indicated by inline code, e.g.
- <code>this text should be typed in</code>
- .
- </p>
- <p>
- Fields in wizards, pop up windows, different editors, radio buttons
- and check boxes are indicated by italic text, e.g. set the field <i>Name</i>
- to
- <code>MyClass</code>
- .
- </p>
- <h1 id="3_Installation">
- <div id="Installation">3 Installation</div>
- </h1>
- <p>It is a several step process to install Papyrus and its
- features. The Eclipse Standard must first be installed and when that
- is done, Papyrus is installed on top of Eclipse Standard.</p>
- <h2 id="3.1_Install_Eclipse_Standard">3.1 Install Eclipse Standard</h2>
- <p>
- Eclipse Standard is installed from the <a
- href="http://www.eclipse.org/downloads/">Eclipse download page</a>.
- On the download page select <i>Eclipse Standard ....</i> to install.
- Follow the install wizard to complete the installation.
- </p>
- <h2 id="3.2_Install_basic_Papyrus">3.2 Install basic Papyrus</h2>
- <p>
- When Eclipse Standard is installed, go to <b>Help &gt; Install New
- Software</b> and type in
- <code>
- <a href="http://download.eclipse.org/releases/kepler/">http://download.eclipse.org/releases/kepler/</a>
- </code>
- in the field named <i>Work with:</i>.
- </p>
- <p>
- <b>Note!</b> When this user guide was written, the Kepler release of
- Eclipse was the latest. Select the latest official Eclipse release.
- </p>
- <p>
- <b>Note!</b> In some industrial environments, a proxy has to be used
- instead of this type of direct URL to the Eclipse web-site.
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 566px;">
- <a href="InstallNewSoftware.bmp" class="image"><img
- class="thumbimage" width="564" align="middle" border="0"
- src="InstallNewSoftware.bmp" /></a>
- <div class="thumbcaption">Figure 1: Install New Software
- wizard</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- In the <i>Name</i> column of the wizard, scroll down to <i>Modeling</i>
- and expand to the next level. Under <i>Modeling</i>, select <i>Papyrus
- UML</i> and follow the installation wizard to complete the installation.
- </p>
- <p>When Eclipse is restarted, the environment is now ready for UML
- modeling.</p>
- <h2 id="3.3_Additional_installation_for_Papyrus_UML_RT_modeling">3.3
- Additional installation for Papyrus UML RT modeling</h2>
- <p>
- After installation of the basic Papyrus feature, go to <b>Help
- &gt; Install Papyrus Additional Components</b>. In the wizard that pops
- up, select the needed additional Papyrus components. To be able to do
- UML RT modeling, the <i>Real Time</i> component is needed. It is also
- recommended to install the <i>Diagram Stylesheets</i> and <i>Papyrus
- Compare</i> components. Follow the installation wizard to complete the
- installation.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 439px;">
- <a href="InstallPapyrusComp.bmp" class="image"><img
- class="thumbimage" width="437" align="middle" border="0"
- src="InstallPapyrusComp.bmp" /></a>
- <div class="thumbcaption">Figure 2: The Install Papyrus
- Additional Components wizard</div>
- </div>
- </div>
- </center>
- </p>
- <h1 id="4_Eclipse">4 Eclipse</h1>
- <p>Since Papyrus is built on the Eclipse framework, most of its
- look and feel is inherited from Eclipse.</p>
- <p>The Eclipse framework has a plug-in architecture, where plug-ins
- can be grouped into features. Features and plug-ins can be added to an
- existing Eclipse installation.</p>
- <h2 id="4.1_Architecture">4.1 Architecture</h2>
- <p>The plug-in architecture applies also for all subsystems. A
- plug-in is the smallest unit of Eclipse Platform functionality that
- can be developed and delivered separately. Usually, a small tool is
- written as a single plug-in, whereas a complex tool has its
- functionality split across several plug-ins. Except for a small kernel
- known as the Platform Runtime, all of the Eclipse Platform’s
- functionality is located in plug-ins. Plug-ins can be grouped into
- features.</p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="EclipseArchitecture.bmp" class="image"><img
- class="thumbimage" width="500" align="middle" border="0"
- src="EclipseArchitecture.bmp" /></a>
- <div class="thumbcaption">Figure 3: The Eclipse architecture</div>
- </div>
- </div>
- </center>
- </p>
- <p>Plug-ins are coded in Java. A typical plug-in consists of Java
- code in a JAR (Java Archive) library, some read-only files, and other
- resources such as images, Web templates, message catalogs, native code
- libraries, and so on. Some plug-ins do not contain code at all. One
- such example is a plug-in that contributes online help in the form of
- HTML pages. A single plug-in’s code libraries and read-only
- content are located together in a directory in the file system, or at
- a base URL on a server. There is also a mechanism that permits a
- plug-in to be synthesized from several separate fragments, each in
- their own directory or URL. This is the mechanism used to deliver
- separate language packs for an internationalized plug-in.</p>
- <p>Each plug-in has a manifest file declaring its interconnections
- to other plug-ins. The interconnection model is simple: a plug-in
- declares any number of named extension points, and any number of
- extensions to one or more extension points in other plug-ins.</p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 102px;">
- <a href="Feature-Plug-in.bmp" class="image"><img
- class="thumbimage" width="100" align="middle" border="0"
- src="Feature-Plug-in.bmp" /></a>
- <div class="thumbcaption">Figure 4: Plug-ins and Features</div>
- </div>
- </div>
- </center>
- </p>
- <h2 id="4.2_Workspace">
- <div id="Workspace">4.2 Workspace</div>
- </h2>
- <p>The workspace is located in the file-system and is the place
- where Eclipse resources (files, folders and projects) are stored. When
- Eclipse is started, a pop-up window appears, where a workspace should
- be selected. One instance of Eclipse is connected to one workspace.</p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="WorkspacePopup.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="WorkspacePopup.bmp" /></a>
- <div class="thumbcaption">Figure 5: Pop-up window to select
- the workspace</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- In the file system all resources are stored in the selected workspace
- and in the same hierarchical structure as in the <i>Project
- Explorer</i>.
- </p>
- <h2 id="4.3_Resources">4.3 Resources</h2>
- <p>
- Resources is a collective term for the projects, folders, and files
- that exist in the workbench. The resources are stored in the
- workspace, where the projects are on the first level. Inside a
- project, there are files and folders in the same hierarchical
- structure as in the <i>Project Explorer</i> and <i>Model Explorer</i>.
- </p>
- <p>Files appear in the file system as files and folders are Unix
- directories or Windows folders and may contain other files and
- folders. Each time a file is saved, a copy is saved, which makes it
- possible to replace the current file with a previous edit or even
- restore a deleted file. Earlier versions of a file can be compared to
- the contents of all the local edits. Each edit in the local history is
- time stamped, i.e. is uniquely represented by the date and time the
- file was saved.</p>
- <p>
- Projects can be viewed as the top level folder in the file system
- under the workspace. In Eclipse there are different types of projects,
- e.g. Model, C/C or Java projects and they are the top level resource
- in the <i>Project Explorer</i>. Projects can be closed and opened in
- the <i>Project Explorer</i>.
- </p>
- <h2 id="4.4_Workbench">
- <div id="Workbench">4.4 Workbench</div>
- </h2>
- <p>
- The workbench is the Eclipse user interface and is used to navigate,
- view, and edit resources in a workspace, i.e. the workbench is the
- Eclipse IDE’s application window. The workbench presents one or
- more editors and <i>views</i> that are gathered into adjustable groups
- (<i>perspectives</i>).
- </p>
- <p>
- The first time Eclipse is started, after the installation, a <i>Welcome</i>
- page is presented. Take a few minutes to explore the product overview
- and getting started information that is located here.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="WelcomePage.bmp" class="image"><img class="thumbimage"
- width="500" align="middle" border="0" src="WelcomePage.bmp" /></a>
- <div class="thumbcaption">Figure 6: The Eclipse welcome page</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- To return to the ordinary workbench, just click on the workbench icon
- up to the right. When starting Eclipse, subsequent times, the
- workbench appears directly. To visit the welcome page at any time,
- just select <b>Help &gt; Welcome</b>.
- </p>
- <p>
- The title bar of the workbench window and the little Papyrus icon to
- the right indicates which <i>perspective</i> is active. In this
- example, the Papyrus <i>perspective</i> is in use. The <i>Project
- Explorer</i> and the <i>Model Explorer, Outline, Properties</i> views,
- etc. are open, along with a <i>Class Diagram</i> editor and its tool
- palette.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 602px;">
- <a href="Workbench.bmp" class="image"><img class="thumbimage"
- width="600" align="middle" border="0" src="Workbench.bmp" /></a>
- <div class="thumbcaption">Figure 7: The Papyrus perspective
- in the workbench</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- It is easy to toggle between perspectives by clicking on some shown <i>perspective</i>
- in top of the right hand corner or open a new one by clicking on the <i>Open
- Perspective</i> icon <img border="0" src="IkonOpenPerspective.png" /> and
- browse to the <i>perspective</i> to open. It is also possible to
- reorganize a <i>perspective</i>, open/close <i>views</i>, customize
- menus, etc. and then save the <i>perspective</i> with a new name by <b>Window
- &gt; Save Perspective As ...</b>.
- </p>
- <h3 id="4.4.1_Views">4.4.1 Views</h3>
- <p>
- <i>Views</i> and editors are the main visual entities that appear in
- the workbench. Any given <i>perspective</i> can contain multiple
- editors and a number of surrounding <i>views</i> that provide context.<i>Views</i>
- provide different ways to visualize, navigate and edit the resources
- in the Eclipse workspace. <i>Views</i> can be single or stacked on top
- of each other.
- </p>
- <p>
- <i>Views</i>, including editor views, can be resize, moved, detached.
- In addition, a <i>view</i> can be maximized to cover the entire
- workbench by double-clicking on its tab. By double-clicking once more,
- it will return to its original size. Some <i>views</i> has a view
- specific menu, e.g. <i>Project Explorer</i> view, where some specific
- view settings could be done.
- </p>
- <p>
- To add a new <i>view</i> to the active <i>perspective</i>, use <b>Window
- &gt; Show View</b>and if the desired <i>view</i> does not appear on top
- of the pop-up menu, select <b>Other</b>, which opens up a <i>view</i>
- browser, where all available <i>views</i> are organized in different
- categories.
- </p>
- <h4 id="4.4.1.1_Single_views">4.4.1.1 Single views</h4>
- <p>
- In the workbench figure, above, several single views appears, e.g. <i>Outline,
- Class Diagram</i> editor, <i>Help, Project Explorer</i> and <i>Model
- Explorer</i> views. The <i>single view</i> has only one tab with the view
- name. By draging a <i>single view</i> tab and release it on another <i>single
- view</i> tab, <i>stacked views</i> are created.
- </p>
- <h4 id="4.4.1.2_Stacked_views">4.4.1.2 Stacked views</h4>
- <p>
- In the workbench figure, above, also <i>stacked views</i> appear, e.g.
- <i>Properties</i> and <i>Model Validation</i> views. To select the one
- that should be on top of the stack, just click on its tab and it
- becomes visible. By selecting a <i>stacked view</i> and drag it
- besides another view in the workbench, a <i>single view</i> will
- appear.
- </p>
- <h2 id="4.5_Preferences">4.5 Preferences</h2>
- <p>
- To customize the settings for the Eclipse workbench and the installed
- features, the preference window is used. Use <b>Windows &gt;
- Preferences</b> to open it, e.g. under <b>General &gt; Keys</b> in the
- preference window there are shortcuts and keys defined for the user
- interface. Here they can be redefined or own sets could be defined.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="Preferences.bmp" class="image"><img class="thumbimage"
- width="500" align="middle" border="0" src="Preferences.bmp" /></a>
- <div class="thumbcaption">Figure 8: The preference window</div>
- </div>
- </div>
- </center>
- </p>
- <p>The preference window pages can be searched using the filter
- function. To filter by matching the page title, simply type the name
- of the page and the available pages will be presented below.</p>
- <p>The filter also searches on keywords. By the history controls
- (the left, right and drop-down arrows up in the right corner of the
- preference window) it is possible to navigate through previously
- viewed pages. To step back or forward several pages at a time, click
- the drop-down arrow and a list of the most recently viewed preference
- pages are displayed.</p>
- <h2 id="4.6_Import_and_Export">4.6 Import and Export</h2>
- <p>
- Projects can be shared between workspaces by using project import and
- export, which are done through wizards. To open the import wizard, use
- <b>File &gt; Import</b> and in several steps select what, where from
- and if it should be imported as a copy or just referenced. To export
- resources, There are also an export wizard, which is opened by <b>File
- &gt; Export</b> and select details about what should be exported, if it
- should be compressed and where to export it to.
- </p>
- <table>
- <tr>
- <td><p>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 302px;">
- <a href="ImportWiz.bmp" class="image"><img class="thumbimage"
- width="300" align="middle" border="0" src="ImportWiz.bmp" /></a>
- <div class="thumbcaption">Figure 9: Import wizard</div>
- </div>
- </div>
- </p></td>
- <td><p>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 302px;">
- <a href="ExportWiz.bmp" class="image"><img class="thumbimage"
- width="300" align="middle" border="0" src="ExportWiz.bmp" /></a>
- <div class="thumbcaption">Figure 10: Export wizard</div>
- </div>
- </div>
- </p></td>
- </tr>
- </table>
- <p>
- When importing a project into the used workspace, it can be copied by
- checking the box <i>Copy ...</i> in the import wizard. If this check
- box is unchecked, there will just be a reference to the other
- workspace and when editing that project, it will be edited in its
- original place. Be aware of that when doing so, several instances of
- Eclipse may edit the same resource.
- </p>
- <p>When exporting a project, browse to the place where to export it
- to name it and select if and how compression should be used.</p>
- <h1 id="5_Modeling">5 Modeling</h1>
- <p>Papyrus is a comprehensive UML modeling environment, where many
- diagrams can be used to view different aspects of a system. Behind all
- diagrams, there is a model where all modeling elements, used in these
- diagrams, are stored. The model keeps the consistency between all
- diagrams.</p>
- <p>
- A model is the collection of all the modeling elements, definitions
- and relationships that compose a software system. Papyrus enables the
- creation, viewing and manipulation of UML diagrams as specified in the
- <a href="http://www.omg.org/spec/UML/2.4.1/">UML 2 specification</a>.
- </p>
- <p>The model defines every element, representing some part of the
- system. Multiple model diagrams can reference an element many times.
- Each of the different diagrams can view a different aspect of the
- system.</p>
- <p>The model is the basis of the diagrams and keep the diagrams
- consistent. The diagrams are stored in the model's hierarchical
- structure. Some are owned by a modeling element like a class and some
- are just organized into some packages (a.k.a folders in basic Eclipse
- projects).</p>
- <h2 id="5.1_Model_and_diagrams">5.1 Model and diagrams</h2>
- <p>The model is the basis of all diagrams and keeps the consistency
- between the diagrams. The model is a collection of definitions of
- elements that compose the system and the relationships between them.
- Diagrams can be used to view subsets of the underlying model and from
- various view points. A model of a system may require many different
- diagrams to represent different views of the system for different
- project stakeholders.</p>
- <p>
- In Papyrus, you can open and add diagrams to the model in the <i>Model
- Explorer</i> view. The <i>Models Explorer</i> shows diagrams in their
- logical place within the model.
- </p>
- <p>The visual representation of a system that diagrams provide can
- offer both low-level and high-level insights into the concepts and
- design of an application.</p>
- <h1 id="6_Tutorials">6 Tutorials</h1>
- <p>The tutorials are focused on selected topics regarding the use
- of Papyrus and contains step by step instructions on how to create and
- manipulate the workbench and models.</p>
- <h2 id="6.1_Getting_started">6.1 Getting started</h2>
- <p>This tutorial is about to understand the workbench environment
- and the basic Eclipse features.</p>
- <h3 id="6.1.1_Exploring_perspectives">6.1.1 Exploring perspectives</h3>
- <p>
- This part demonstrates the differences between the <i>Papyrus</i> and
- the <i>Resource</i> perspectives and also how to customize the <i>Resource</i>
- perspective.
- </p>
- <h4 id="6.1.1.1_Exploring_the_.27.27Papyrus.27.27_perspective">
- 6.1.1.1 Exploring the <i>Papyrus</i> perspective
- </h4>
- <p>
- Explore the default menu, toolbar, and views in the <i>Papyrus</i>
- perspective.
- </p>
- <ol>
- <li>To switch to the <i>Payrus</i> perspective, click <b>Window
- &gt; Open Perspective &gt; Other</b>. Then choose the <i>Papyrus</i>
- perspective. (Notice the workbench title bar and perspective bar
- reflect that the <i>Papyrus</i> perspective is active. Notice also
- the main menu items, toolbar buttons, and views that is visible in
- this perspective.)
- </li>
- <li>Click <b>File &gt; New</b> and notice that the menu contains
- the items <i>Papyrus Project</i> and <i>Papyrus Model</i> among other
- items.
- </li>
- <li>Click <b>Window &gt; Show View</b> and notice that the menu
- contains the items <i>Model Explorer</i>, <i>Model Validation</i> and
- more.
- </li>
- </ol>
- <h4 id="6.1.1.2_Exploring_and_customizing_the_Resource_perspective">6.1.1.2
- Exploring and customizing the Resource perspective</h4>
- <p>
- Explore the default menu, toolbar, and views in the <i>Resource</i>
- perspective and customize a menu.
- </p>
- <ol>
- <li>To switch to the <i>Resource</i> perspective, click <b>Window
- &gt; Open Perspective &gt; Other</b>. Then choose the <i>Resource</i>
- perspective. Notice that the workbench title bar and perspective bar
- reflect that the <i>Resource</i> perspective is active. (Notice the
- main menu items, toolbar buttons, and views visible in this
- perspective)
- </li>
- <li>Click <b>File &gt; New</b> and notice that there are no
- Papyrus items in the menu.
- </li>
- <li>Click <b>Window &gt; Show View</b> and notice that the menu
- does NOT contain the items <i>Model Explorer</i> and <i>Model
- Validation</i>.
- </li>
- <li>Click <b>Window &gt; Customize Perspective</b>. Ensure that
- the workbench title bar and perspective bar reflect that the <i>Resource</i>
- perspective is active.
- </li>
- <li>In the <i>Customize Perspective – Resource</i> pop up
- window, select the <i>Shortcuts</i> tab and select <b>Show View</b>
- from the <i>Submenus</i> combo box.
- </li>
- <li>Clear all check boxes in the <i>Shortcut Categories</i> list.
- </li>
- <li>Click <i>General</i>(not check the check box) in the <i>Shortcut
- Categories</i> list, select the check box next to <i>Project
- Explorer</i> in the <i>Shortcuts</i> list, and click <i>OK</i>.
- </li>
- <li>Click <b>Window &gt; Show View</b> and notice the menu now
- just contains the <i>Project Explorer</i> item.
- </li>
- </ol>
- <h3 id="6.1.2_Creating_a_project.2C_folder_and_files">6.1.2
- Creating a project, folder and files</h3>
- <p>
- In this section a new project, folder and files will be created in the
- <i>Resource</i> perspective.
- </p>
- <h4 id="6.1.2.1_Creating_a_new_general_project">6.1.2.1 Creating a
- new general project</h4>
- <p>
- Create a new project in the <i>Resource</i> perspective by completing
- these steps:
- </p>
- <ol>
- <li>If necessary switch to the <i>Resource</i> perspective by
- clicking on <b>Window &gt; Open Perspective &gt; Other</b>. Then
- choose the <i>Resource</i> perspective. If the <i>Resource</i>
- perspective already is active, click on <b>Window &gt; Reset
- Perspective...</b> to get back to its default configuration.
- </li>
- <li>Click <b>File &gt; New &gt; Project</b>.
- </li>
- <li>In the <i>New Project</i> wizard, name the project <code>My
- Project</code> and click <i>Finish</i>.
- </li>
- </ol>
- <h4 id="6.1.2.2_Creating_a_new_folder">6.1.2.2 Creating a new
- folder</h4>
- <p>Create a folder in the project:</p>
- <ol>
- <li>Right-click on <i>My Project</i> in the <i>Project
- Explorer</i> and select <b>New &gt; Folder</b>.
- </li>
- <li>Type <code>Text Files</code> in the the field <i>Folder
- name</i>, and then click <i>Finish</i>.
- </li>
- </ol>
- <h4 id="6.1.2.3_Creating_and_editing_a_new_file">6.1.2.3 Creating
- and editing a new file</h4>
- <p>Create a file in the folder:</p>
- <ol>
- <li>In the <i>Project Explorer</i>, right-click on the <i>Text
- Files</i> folder and select <b>New &gt; File</b>.
- </li>
- <li>In the <i>New File</i> wizard, ensure that <i>My
- Project/Text Files</i> is the parent folder. Type <code>My File</code>
- as the file name and click <i>Finish</i>. (Notice that a text editor
- opens in the editing view for the created resource)
- </li>
- <li>Enter any text into the editor view for <i>My File</i>.
- Notice the asterisk (*) next to the file name indicates unsaved
- changes.
- </li>
- <li>Press <i>Ctrl S</i> to save the work. Notice that the
- asterisk disappears.
- </li>
- </ol>
- <h4 id="6.1.2.4_Creating_another_file">6.1.2.4 Creating another
- file</h4>
- <p>
- Create another file in the <i>Text Files</i> folder, using the
- workbench menu this time.
- </p>
- <ol>
- <li>On the workbench menu, click <b>File &gt; New &gt; File</b>.
- </li>
- <li>In the <i>New File</i> wizard, expand <i>My Project</i> and
- then select <i>Text Files</i> as the parent folder.
- </li>
- <li>Type <code>My Other File</code> as the file name and click <i>Finish</i>.
- </li>
- <li>Reviewing the contents of the <i>Project Explorer</i> view,
- which should be like this
- </li>
- </ol>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 202px;">
- <a href="MyProject.bmp" class="image"><img class="thumbimage"
- width="200" align="middle" border="0" src="MyProject.bmp" /></a>
- </div>
- </div>
- </center>
- </p>
- <h3 id="6.1.3_Exploring_editors_and_views">6.1.3 Exploring editors
- and views</h3>
- <p>This section demonstrates how to manipulate views and editors.</p>
- <h4 id="6.1.3.1_Maximizing_and_restoring_an_editor">6.1.3.1
- Maximizing and restoring an editor</h4>
- <p>Maximize one of the editors to expand the viewable area:</p>
- <ol>
- <li>Double-click the file name on the editor tab for <i>My
- File</i>.
- </li>
- <li>Double-click the file name again to restore the editor to its
- original size.</li>
- </ol>
- <h4 id="6.1.3.2_Tiling_and_restacking_the_editors">6.1.3.2 Tiling
- and restacking the editors</h4>
- <p>Currently, the editors are stacked one in front of the other.
- Try tiling them horizontally and vertically:</p>
- <ol>
- <li>Click the <i>My Other File</i> editor tab and drag it to the
- bottom of the editor pane. Colored frames indicates how the views
- will be tiled. Drop the editor and notice that the editors are tiled
- horizontally.
- </li>
- <li>Drag the <i>My Other File</i> editor tab to the left of the
- editor pane and release it. Notice that the editors are tiled
- vertically.
- </li>
- <li>Restack the editors by dragging one of the editor tabs on top
- of the other.</li>
- </ol>
- <h4 id="6.1.3.3_Organizing_views">6.1.3.3 Organizing views</h4>
- <p>Try moving a view:</p>
- <ol>
- <li>Drag the title bar of the <i>Outline</i> view onto the title
- bar of the <i>Project Explorer</i>.
- </li>
- <li>Experiment by dragging the title bar of the <i>Outline</i>
- view to various locations within the workbench.
- </li>
- <li>Return the <i>Outline</i> view to its original place to the
- lower left of the workbench. It is always possible to return to the
- default configuration of the active perspective by clicking on <b>Windows
- &gt; Reset Perspective...</b></li>
- </ol>
- <h4 id="6.1.3.4_Using_view_menus">6.1.3.4 Using view menus</h4>
- <p>
- Some views has view menus, e.g. <i>Project Explorer</i> view, which is
- indicated by a down arrow in the upper-right corner of the view. Click
- this down arrow of the <i>Project Explorer</i> view and review the
- pull-down menu options specific for this view.
- </p>
- <h4 id="6.1.3.5_Closing_and_opening_views">6.1.3.5 Closing and
- opening views</h4>
- <p>
- If a view does not appear in the workbench, it can be open by using
- the <b>Window</b> menu:
- </p>
- <ol>
- <li>Close the <i>Project Explorer</i> view by right-click on the
- <i>Project Explorer</i> view tab and select <b>Close</b>.
- </li>
- <li>Click <b>Window &gt; Show View &gt; Other</b> and type <code>Project
- Explorer</code> in the filter text box.
- </li>
- <li>Select <i>Project Explorer</i> and click <i>OK</i> which
- opens the view again.
- </li>
- </ol>
- <h3 id="6.1.4_Exporting_and_importing_a_project">6.1.4 Exporting
- and importing a project</h3>
- <p>
- This section demonstrates how projects can be shared between users and
- workspaces using the <i>export</i> and <i>import</i> feature.
- </p>
- <h4 id="6.1.4.1_Exporting_a_project">6.1.4.1 Exporting a project</h4>
- <p>
- Export <i>My Project</i> to a compressed file:
- </p>
- <ol>
- <li>Select <b>File &gt; Export...</b> from the workbench menu.
- </li>
- <li>In the <i>Export</i> wizard, expand <b>General</b>, and then
- select <b>Archive File</b>. Click <i>Next</i>.
- </li>
- <li>Check the check box next to <i>My Project</i> in the resource
- list.
- </li>
- <li>Click <i>Browse</i> to specify an export destination in the <i>To
- archive file</i> field. Note the available options for archive formats.
- </li>
- <li>In the <i>Browse</i> window, select the <i>Desktop</i> as the
- destination folder and type <code>My Project</code> as the file name.
- Click <i>OK</i>.
- </li>
- <li>In the <i>Export</i> wizard, click <i>Finish</i> to perform
- the export process.
- </li>
- <li>View the desktop and notice the new compressed (.zip) file.</li>
- </ol>
- <h4 id="6.1.4.2_Removing_the_project_from_the_workspace">6.1.4.2
- Removing the project from the workspace</h4>
- <p>
- Remove <i>My Project</i> from the workspace:
- </p>
- <ol>
- <li>Right-click <i>My Project</i> in the <i>Project Explorer</i>
- and select <b>Delete</b> from the context menu.
- </li>
- <li>In the <i>Delete Resources</i> pop up window, make sure to
- check the
- </li>
- </ol>
- <p>
- <i>Delete project contents on disk</i> check box. Click <i>OK</i>.
- Note: If this check box is unchecked, the resource will just be
- deleted from the Workbench, but it will still exist in the workspace.
- (Notice <i>My Project</i> is no longer listed in the <i>Project
- Explorer</i>)
- </p>
- <h4 id="6.1.4.3_Importing_a_project">6.1.4.3 Importing a project</h4>
- <p>
- Import <i>My Project</i> from a compressed file:
- </p>
- <ol>
- <li>Select <b>File &gt; Import...</b> from the workbench menu.
- </li>
- <li>In the <i>Import</i> wizard, expand <b>General</b>, and then
- select <b>Existing Projects into Workspace</b>. Click <i>Next</i>.
- </li>
- <li>Click the <b>Select archive file</b> radio button.
- </li>
- <li>Click the <i>Browse</i> button.
- </li>
- <li>In the <i>Browse</i> window, browse to the <i>Desktop</i> and
- select <b>My Project.zip</b> and click <i>Open</i>.
- </li>
- </ol>
- #In the
- <p>
- <i>Import</i> wizard, check the check box next to <i>My Project</i>
- and click <i>Finish</i> to perform the import process. (Notice <i>My
- Project</i> is once again listed in the <i>Project Explorer</i>)
- </p>
- <h3 id="6.1.5_Conclusion">6.1.5 Conclusion</h3>
- <p>The basic features of the Eclipse workbench have now been
- demonstrated.</p>
- <ul>
- <li>How to view and customize perspectives.</li>
- <li>How to create a project, folder and files.</li>
- <li>How to manipulate editors and views.</li>
- <li>How to export and import projects.</li>
- </ul>
- <h2 id="6.2_Creating_profiles">6.2 Creating profiles</h2>
- <h2 id="6.3_Creating_models">6.3 Creating models</h2>
- <h3 id="6.3.1_Use_case_modeling">6.3.1 Use case modeling</h3>
- <h3 id="6.3.2_Design_modeling">6.3.2 Design modeling</h3>
- <h3 id="6.3.3_RT_modeling">6.3.3 RT modeling</h3>
- <h1 id="7_Papyrus">7 Papyrus</h1>
- <p>Papyrus can be used to do</p>
- <ul>
- <li>General UML modeling.</li>
- <li>UML RT modeling, which is described in the section <a
- href="#6.3.3_RT_modeling">6.3.3_RT_modeling</a> when the UML RT
- profile is applied.
- </li>
- <li>SysML modeling when the SysML profile is applied.</li>
- <li>MARTE modeling when the MARTE profile is applied.</li>
- <li>UML profiles, which is described in the section <a
- href="#7.10_UML_profiling">UMLprofiling</a> .
- </li>
- </ul>
- <p>
- In Papyrus, different UML profiles can be applied. When installing
- Papyrus, as described in section <a href="#3_Installation">Installation</a>
- , also the UML, UML RT, SysML and MARTE profiles can be added. When
- creating a new Papyrus project, the type of Papyrus project is
- selected. Project types to chose from are SysML, Profile and UML.
- </p>
- <h2 id="7.1_Papyrus_resources_in_the_workspace">7.1 Papyrus
- resources in the workspace</h2>
- <p>When modeling in Papyrus, three types of resources are stored in
- the workspace.</p>
- <table>
- <tr>
- <td><p>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="ModelProjResourcesFS.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="ModelProjResourcesFS.bmp" /></a>
- <div class="thumbcaption">Figure 11: Resources in the file
- system</div>
- </div>
- </div>
- </p></td>
- <td><p>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 202px;">
- <a href="ModelProjResourcesPE.bmp" class="image"><img
- class="thumbimage" width="200" align="middle" border="0"
- src="ModelProjResourcesPE.bmp" /></a>
- <div class="thumbcaption">Figure 12: Resources in the
- Project 'Explorer'</div>
- </div>
- </div>
- </p></td>
- </tr>
- </table>
- <ul>
- <li><b>.di</b> file persists the status of the workbench, i.e.
- which diagrams and views are opened, etc.</li>
- <li><b>.notation</b> file keeps the information about the
- diagrams in the model.</li>
- <li><b>.uml</b> file contains the UML model.</li>
- </ul>
- <p>
- Note! In this case the model is contained in three files. When working
- in an industrial context, the model may need to be split up into
- several fragments in order for several designers to work in parallel
- with the same model. This is described in section <a
- href="#7.6_Papyrus_in_a_team_environment">Papyrus in a team
- environment</a> .
- </p>
- <h2 id="7.2_The_Papyrus_perspective">7.2 The Papyrus perspective</h2>
- <p>
- When Papyrus is installed a predefined perspective called <i>Papyrus</i>
- is made available. This is the perspective to use when modeling with
- Papyrus. The Papyrus perspective can be customized to the user needs
- and saved as new perspective ( see section <a href="#4.4_Workbench">Workbench</a>
- ).
- </p>
- <h3 id="7.2.1_Project_Explorer_view">7.2.1 Project Explorer view</h3>
- <p>
- The <i>Project Explorer</i> view is used to browse, select and
- manipulate resources in the workspace. Projects or working sets are
- the top level in this view. From the <i>Project Explorer’s</i>
- (right click on the white space) context menu, e.g. new projects can
- be created.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 202px;">
- <a href="ProjectExpl.bmp" class="image"><img class="thumbimage"
- width="200" align="middle" border="0" src="ProjectExpl.bmp" /></a>
- <div class="thumbcaption">Figure 13: The Project Explorer</div>
- </div>
- </div>
- </center>
- </p>
- <p>In some views, as in this case, there is a view specific menu
- (indicated in Figure 13 with a red ring). Here some settings could be
- done for the view, e.g. if the top level should be working sets or
- projects.</p>
- <h3 id="7.2.2_Model_Explorer_view">7.2.2 Model Explorer view</h3>
- <p>
- In the <i>Model Explorer</i> view, the model that has been opened in
- the <i>Project Explorer</i>, can be browsed and edited. Model elements
- can be added by using the context menu of any existing modeling
- element, including the model package and packages. Diagrams can also
- be added by using the context menus. Existing diagrams can be opened
- in an appropriate editor by just double clicking on the diagram in the
- <i>Model Explorer</i>.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 202px;">
- <a href="ModelExpl.bmp" class="image"><img class="thumbimage"
- width="200" align="middle" border="0" src="ModelExpl.bmp" /></a>
- <div class="thumbcaption">Figure 14: The Model Explorer</div>
- </div>
- </div>
- </center>
- </p>
- <h3 id="7.2.3_Editing_view">7.2.3 Editing view</h3>
- <p>
- The <i>Editing View</i> is in the middle part of the workbench and
- here opens different types of editors, depending on the type of
- resource to edit, e.g. if a class diagram is opened, the class diagram
- editor will be started in the <i>Editing View</i>.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="EditingView.bmp" class="image"><img class="thumbimage"
- width="400" align="middle" border="0" src="EditingView.bmp" /></a>
- <div class="thumbcaption">Figure 15: The 'Editing View'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- How to use editors is described in section <a
- href="#7.3_Diagram_editing_in_Papyrus">Editors in Papyrus</a> .
- </p>
- <h3 id="7.2.4_Outline_view">7.2.4 Outline view</h3>
- <p>
- The <i>Outline View</i> is connected to the <i>Editing View</i> and
- gives an overview of what is opened in the <i>Editing View</i>. The <i>Outline
- View</i> may be used to pan the <i>Editing View</i> or to select some
- information that will be highlighted in the <i>Editing View</i>. The
- shaded area is the area that is visible in the <i>Editing View</i>.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 202px;">
- <a href="OutlineView.bmp" class="image"><img class="thumbimage"
- width="200" align="middle" border="0" src="OutlineView.bmp" /></a>
- <div class="thumbcaption">Figure 16: The 'Outline View'</div>
- </div>
- </div>
- </center>
- </p>
- <h3 id="7.2.5_Properties_view">7.2.5 Properties view</h3>
- <p>
- The <i>Properties view</i> is located as a stacked view at the bottom
- of the workbench and shows the properties of a selected modeling
- element. The modeling element can be selected in the Model Explorer or
- in a diagram. The properties are categorized under different tabs to
- the left in the <i>Properties view</i>.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="PropertiesView.bmp" class="image"><img
- class="thumbimage" width="500" align="middle" border="0"
- src="PropertiesView.bmp" /></a>
- <div class="thumbcaption">Figure 17: The 'Properties View'</div>
- </div>
- </div>
- </center>
- </p>
- <p>In this view the properties may be viewed and edited, e.g.
- rename the operation and change the visibility of the operation.</p>
- <h3 id="7.2.6_Model_Validation_view">7.2.6 Model Validation view</h3>
- <p>
- From the context menu in the <i>Model Explorer</i> it is possible to
- validate the entire model or parts of it (for more details see section
- <a href="#7.7_Model_validation">Model validation</a> . All warnings
- and errors appear in the <i>Model Validation View</i>, which is a
- stacked view together with the <i>Properties View</i> and the <i>Search
- View</i> at the bottom of the workbench.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="ModelValidationView.bmp" class="image"><img
- class="thumbimage" width="500" align="middle" border="0"
- src="ModelValidationView.bmp" /></a>
- <div class="thumbcaption">Figure 18: The 'Model Validation
- View'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The model validation constraints are customizable and how to work with
- it is described in section <a href="#7.7_Model_validation">Model
- validation</a> .
- </p>
- <h3 id="7.2.7_Search_view">7.2.7 Search view</h3>
- <p>
- It is possible to do searches on a selected resource in a specific
- project or in the entire workspace. When the search is finished, the
- result appears in the <i>Search View</i>. Details about specifying
- searches is described in the <a href="#7.8_Searching">Searching</a>
- section.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="SearchView.bmp" class="image"><img class="thumbimage"
- width="500" align="middle" border="0" src="SearchView.bmp" /></a>
- <div class="thumbcaption">Figure 19: The Search View</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The example in Figure 19 shows the result of a model search for <i>Class1</i>
- in the entire workspace.
- </p>
- <h2 id="7.3_Diagram_editing_in_Papyrus">
- <div id="EditorsinPapyrus">7.3 Diagram editing in Papyrus</div>
- </h2>
- <p>
- To edit diagrams different editors are available in Papyrus. They have
- the same basic look and feel. When double clicking on some diagram in
- the <i>Model Explorer</i>, the diagram opens in the editing view. An
- outline view and a tool palette are also opened. Creating a new
- diagram in the <i>Model Explorer</i> will also open up a diagram
- editor together with its tool palette and outline view.
- </p>
- <h3 id="7.3.1_Diagram_editors">7.3.1 Diagram editors</h3>
- <p>When a diagram editor is opened in Papyrus, three views are
- opened</p>
- <ul>
- <li>Editing surface</li>
- <li>Palette</li>
- <li>Outline</li>
- </ul>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="DiagramEditorFieldsPointers.bmp" class="image"><img
- class="thumbimage" width="500" align="middle" border="0"
- src="DiagramEditorFieldsPointers.bmp" /></a>
- <div class="thumbcaption">Figure 20: Parts of a diagram
- editor, e.g. class diagram editor</div>
- </div>
- </div>
- </center>
- </p>
- <p>Figure 20 shows the different parts of a diagram editor. In this
- case the class diagram editor has been chosen as an example. The
- editing surface is where the diagram editing is taken place. The
- outline view gives an overview of the entire diagram. The blue shaded
- part in the outline view shows what is visible in the editing surface.
- The palette contains drawers and in each drawer there are tools to be
- used to add different things into the diagram. In Figure 20, the Nodes
- drawer is closed and the edge drawer is opened. In the edge drawer
- there are tools to create different types of edges. By clicking on a
- drawer, it toggles open and close drawer.</p>
- <h3 id="7.3.2_Basic_tool_techniques">7.3.2 Basic tool techniques</h3>
- <p>Diagrams can be created in different places in the model such as
- they can be owned by model elements like classes or packages (a.k.a
- folders in basic Eclipse). Diagrams can also be placed on top of the
- model directly under the model package.</p>
- <h4 id="7.3.2.1_Creating_diagrams">7.3.2.1 Creating diagrams</h4>
- <p>
- To create a diagram, right click on the model element that should be
- the owner of the diagram and select <b>New Diagram</b> from the
- context menu. A new level of menu appears, displaying all types of
- diagrams that are available to create in this place, e.g. Figure 21
- shows the available diagram types that can be created directly on top
- in the model package.
- </p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 502px;">
- <a href="NewDiagram.bmp" class="image"><img class="thumbimage"
- width="500" align="middle" border="0" src="NewDiagram.bmp" /></a>
- <div class="thumbcaption">Figure 21: Available diagram types
- that can be created directly under the model package</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- <b>Note!</b> In Figure 21, no adaptation of Papyrus has taken place,
- hence all diagram types according to UML pops up. In a project
- environment, it is recommended that a support organization minimize
- the available choices in menus like this.
- </p>
- <h4 id="7.3.2.2_Scrolling_and_panning_in_diagrams">7.3.2.2
- Scrolling and panning in diagrams</h4>
- <p>Scrolling and panning in diagrams can be done by either:</p>
- <ul>
- <li>Use the outline view and click (hold down) and drag the blue
- shaded area around, which simultaneously pans the editing surface.</li>
- <li>Use the vertical and horisontal scroll bars in the editing
- surface.</li>
- </ul>
- <h4 id="7.3.2.3_Creating_an_element_in_a_diagram">7.3.2.3 Creating
- an element in a diagram</h4>
- <p>Elements can be created in a diagram directly, by using a tool
- from the palette, e.g. to create a class</p>
- <ol>
- <li>Open a class diagram</li>
- <li>Open the nodes drawer</li>
- <li>Click on the class tool</li>
- <li>Click somewhere in the editing surface</li>
- <li>Name the class</li>
- </ol>
- <p>
- If an element already exists in the model, just click on (hold down)
- the element in the <i>Model Explorer</i> and drag it to the editing
- surface. When releasing the mouse key, the modeling element appears in
- the diagram.
- </p>
- <h4 id="7.3.2.4_Delete_and_hide">7.3.2.4 Delete and hide</h4>
- <p>In a diagram, elements can be deleted or hided.</p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 202px;">
- <a href="ElementContextMenuDiaDelHide.bmp" class="image"><img
- class="thumbimage" width="200" align="middle" border="0"
- src="ElementContextMenuDiaDelHide.bmp" /></a>
- <div class="thumbcaption">Figure 22: Context menu of an
- element in a diagram</div>
- </div>
- </div>
- </center>
- </p>
- <p>Right click on an element in a diagram and do</p>
- <ul>
- <li><b>Delete Selected Element</b> will delete the element from
- the entire model and also from all diagrams where it appears.</li>
- <li><b>Hide Selected Element</b> will hide the element just in
- this diagram.</li>
- </ul>
- <p>
- <b>Note!</b> These menu items have short cuts, i.e. instead of using
- the context menu, just select the element in the diagram and use the <b>Delete</b>
- or <b>Shift-Delete</b> keys
- </p>
- <h4 id="7.3.2.5_Formating_and_validating_diagrams">7.3.2.5
- Formating and validating diagrams</h4>
- <p>Diagrams can be adjusted and graphically edited to get a nicer
- look also using the element context menu. From the same context menu
- it is also possible to validate the model or parts of the model.</p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 302px;">
- <a href="ElementContextMenuDiaFormat.bmp" class="image"><img
- class="thumbimage" width="300" align="middle" border="0"
- src="ElementContextMenuDiaFormat.bmp" /></a>
- <div class="thumbcaption">Figure 23: Example of the Format
- sub context menu</div>
- </div>
- </div>
- </center>
- </p>
- <p>In Figure 23 several menu items are shown</p>
- <ul>
- <li><b>Edit</b> to do some basic graphical editing like
- copy/paste</li>
- <li><b>Validation</b> to validate the model partly or totally</li>
- <li><b>Format</b> to do some advanced formating of the diagram
- like adjustments, routing, etc. as shown in the sub context menu in
- Figure 23</li>
- <li><b>Filter</b> to select/unselect parts of symbols that should
- be visible or not</li>
- </ul>
- <h2 id="7.4_UML_modeling">
- <div id="UMLmodeling">7.4 UML modeling</div>
- </h2>
- <p>
- With Papyrus, UML models can be created. Preferably this is done using
- different types of diagrams. Modeling elements can be created in these
- diagrams or directly in the <i>Model Explorer</i>. Diagrams are
- created in the <i>Model Explorer</i> and when doing so, a diagram
- editor together with its tool palette and outline view are also
- opened. Section <a href="#7.3_Diagram_editing_in_Papyrus">Diagram
- editing in Papyrus</a> describes how to work with diagram editors.
- </p>
- <h3 id="7.4.1_Diagrams">
- <div id="UMLdiagrams">7.4.1 Diagrams</div>
- </h3>
- <p>UML has many different types of diagrams to capture all
- different aspects of a system. To capture and refine requirements,
- diagrams related to use cases are used. To specify the architecture
- and design, diagrams related to classes and packages are used, To
- specify the implementation, state and activity diagrams are used, etc.</p>
- <h4 id="7.4.1.1_Diagrams_related_to_Use_Cases">7.4.1.1 Diagrams
- related to Use Cases</h4>
- <p>When working with requirement capture and refinement, use case
- modeling is used and any or all of the following diagrams can be used:</p>
- <ul>
- <li>Use Case diagram</li>
- <li>Activity diagram</li>
- <li>Interaction diagram
- <ul>
- <li>Sequence diagram</li>
- <li>Collaboration diagram</li>
- </ul>
- </li>
- </ul>
- <h5 id="7.4.1.1.1_Use_case_diagram">7.4.1.1.1 Use case diagram</h5>
- <p>
- A <i>use case diagram</i> describe how different <i>Actors</i> use
- different functionality of the system. Implicitly, it also define the
- system boundary, since it shows what should be performed by the system
- and what exists outside the system. The elements used in <i>use
- case diagrams</i> are:
- </p>
- <ul>
- <li><b>Actors</b> interact with, but are outside the system.</li>
- <li><b>Use cases</b> are some functionality that are performed by
- the system.</li>
- <li><b>Relationships</b> between elements.</li>
- </ul>
- <p>A diagram may depict all or some of the use cases of a system.</p>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="UCdiagram.bmp" class="image"><img class="thumbimage"
- width="400" align="middle" border="0" src="UCdiagram.bmp" /></a>
- <div class="thumbcaption">Figure 24: 'Use case diagram'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- A <i>use case</i> interacts with an <i>actor</i> and perform something
- useful for that <i>actor</i>. A <i>use case</i> exist because of its
- main flow, but all odd cases and error situations have to be
- specified. A <i>use case</i> has a black box and a white box view. The
- black box view is preferably described in plain text or by using
- activity diagrams. The white box view is described by one or several
- sequence diagrams.
- </p>
- <p>
- All <i>use cases</i> together, spans the entire functionality of the
- system. <i>Actors</i>, <i>use cases</i> and <i>use case diagrams</i>
- are owned by packages (general UML packages or model packages).
- </p>
- <p>
- To create a <i>use case diagram</i>, right click on the owning package
- and select <b>New Diagram &gt; Create a new UseCase Diagram</b> from
- its context menu.
- </p>
- <h5 id="7.4.1.1.2_Activity_diagram">7.4.1.1.2 Activity diagram</h5>
- <p>
- An <i>activity diagram</i> is a kind of behavioral diagram and shows
- flow of control from activity to activity. It is used to specify a use
- case black box view. It can also be used to specify a flow chart for a
- class operation.
- </p>
- <p>
- The main elements in an <i>activity diagram</i> are:
- </p>
- <ul>
- <li>Initial and end states</li>
- <li>Activities</li>
- <li>States</li>
- <li>Transitions</li>
- <li>Synchronization lines</li>
- <li>Decisions</li>
- <li>Partitions</li>
- </ul>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="ActivityDiagram.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="ActivityDiagram.bmp" /></a>
- <div class="thumbcaption">Figure 25: 'Activity diagram'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The <i>activity diagram</i> is preferable used to specify the black
- box behavior of a use case instead of using plain text. It may also be
- used to specify a flow chart for a class operation.<i>Activity
- diagrams</i> are owned by use cases or classes.
- </p>
- <p>
- To create an <i>activity diagram</i>, right click on the owning use
- case or class and select <b>New Diagram &gt; Create a new Activity
- Diagram</b> from its context menu.
- </p>
- <h5 id="7.4.1.1.3_Interaction_diagrams">7.4.1.1.3 Interaction
- diagrams</h5>
- <p>
- Interaction diagrams are used to specify how different modeling
- elements interacts. Here two types are described, the <i>sequence
- diagram</i> and the <i>communication diagram</i>.
- </p>
- <h6 id="7.4.1.1.3.1_Sequence_diagram">7.4.1.1.3.1 Sequence diagram</h6>
- <p>
- A <i>sequence diagram</i> describes the interactions between elements
- as a time ordered set of messages. One or several <i>sequence
- diagrams</i> are used to specify the white box view of a use case.
- </p>
- <p>
- Sequences involving collaborating elementsThe main elements in a <i>sequence
- diagram</i> are:
- </p>
- <ul>
- <li>Class instances (objects)</li>
- <li>Life lines</li>
- <li>Messages</li>
- <li>Combined fragments</li>
- </ul>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="SequenceDiagram.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="SequenceDiagram.bmp" /></a>
- <div class="thumbcaption">Figure 26: 'Sequence diagram'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The example (Figure 26) describes Interaction1, two objects (instances
- of Class1 and Class2) are created and interacts by messages. The time
- goes down along the life lines. In the bottom, there is a combined
- fragment of type "Ref" which is a reference to another interaction,
- Interaction2, meaning that the sequences in that interaction are
- executed.There are a lot of combined fragment types, e.g. type "Loop"
- specifies a loop, type "Alt" specifies alternatives, etc. All combined
- fragment types are defined in <a
- href="http://www.omg.org/spec/UML/2.4.1/">Unified Modeling
- Language (UML) version 2.4.1</a>
- </p>
- <p>
- <i>Sequence diagrams</i> are owned by use cases or communication
- diagrams (see below).
- </p>
- <p>
- To create a <i>sequence diagram</i>, right click on the owning use
- case or communication diagram and select <b>New Diagram &gt;
- Create a new Sequence Diagram</b> from its context menu.
- </p>
- <h6 id="7.4.1.1.3.2_Communication_diagram">7.4.1.1.3.2
- Communication diagram</h6>
- <p>
- <i>Communication diagrams</i> show the lines of communication among a
- set of objects to accomplish a specific purpose. They act as the
- framework for sequence diagrams and define access paths between
- elements. i.e. <i>communication diagrams</i> are used to specify a use
- case's white box communication channels between elements in the
- system.
- </p>
- <p>
- The main elements in a <i>collaboration diagram</i> are:
- </p>
- <ul>
- <li>Class instances (objects)</li>
- <li>Access paths</li>
- <li>Messages</li>
- </ul>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="CommunicationDiagram.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="CommunicationDiagram.bmp" /></a>
- <div class="thumbcaption">Figure 27: 'Communication diagram'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The example (Figure 27) describes access paths between objects and
- which messages are passed in these paths.<i>Communication diagrams</i>
- are owned by use cases.
- </p>
- <p>
- To create a <i>communication diagram</i>, right click on the owning
- use case and select <b>New Diagram &gt; Create a new Communication
- Diagram</b> from its context menu.
- </p>
- <h4 id="7.4.1.2_Diagrams_related_to_Classes">7.4.1.2 Diagrams
- related to Classes</h4>
- <p>When modeling classes, any or all of the following diagrams may
- be used:</p>
- <ul>
- <li><i>Class diagrams</i></li>
- <li><i>Composite structure diagrams</i></li>
- <li><i>State diagrams</i></li>
- </ul>
- <p>As described above, activity diagrams may also be used to
- specify a flowchart for a class operation.</p>
- <h5 id="7.4.1.2.1_Class_diagram">7.4.1.2.1 Class diagram</h5>
- <p>
- <i>Class diagrams</i> depict static views of the system. A <i>class
- diagram</i> may represent all or part of the class structure of a system.
- Typically there are many <i>class diagrams</i> in a model. Usually one
- or many <i>class diagrams</i> are used to specify the inheritance
- structure in the system. <i>Class diagrams</i> may also be used to
- define dependency rules between packages.
- </p>
- <p>
- The main elements in a <i>class diagram</i> are:
- </p>
- <ul>
- <li>Packages</li>
- <li>Classes</li>
- <li>Relationships</li>
- </ul>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="ClassDiagram.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="ClassDiagram.bmp" /></a>
- <div class="thumbcaption">Figure 28: 'Class diagram'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The example (Figure 28) shows a <i>class diagram</i> used to specify
- an inheritance structure between classes. Note: The <i>Generalization</i>
- relationship and the indication of the inherited attributes in Class1
- and Class2.
- </p>
- <p>
- <i>Class diagrams</i> are owned by ordinary UML packages or model
- packages.
- </p>
- <p>
- To create a <i>class diagram</i>, right click on the owning package
- and select <b>New Diagram &gt; Create a new Class Diagram</b> from its
- context menu.
- </p>
- <h5 id="7.4.1.2.2_Composite_structure_diagram">7.4.1.2.2 Composite
- structure diagram</h5>
- <p>
- The <i>composite structure diagram</i> specifies structure classes
- contents, i.e. how the class uses <i>roles</i> (instances from other
- classes) and how they are connected to fulfill its responsibility.
- </p>
- <p>
- The main elements in a <i>composite structure diagram</i> are:
- </p>
- <ul>
- <li>Contained roles (instances of classes)</li>
- <li>Ports (interface objects)</li>
- <li>Connectors</li>
- </ul>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="CompositeStructure.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="CompositeStructure.bmp" /></a>
- <div class="thumbcaption">Figure 29: 'Composite structure
- diagram'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The example (Figure 29) shows a <i>composite structure diagram</i>
- used to specify the structural contents of Class4. Note: Class4 uses
- one instance (class2) of Class2 and one instance (class3) of Class3
- and they are connected between Class2/Port1 and Class3/Port2.
- </p>
- <p>
- <i>Composite structure diagrams</i> are owned by structured classes.
- </p>
- <p>
- To create a <i>composite structure diagram</i>, right click on the
- owning class and select <b>New Diagram &gt; Create a new Composite
- Structure Diagram</b> from its context menu.
- </p>
- <h5 id="7.4.1.2.3_State_machine_diagram">7.4.1.2.3 State machine
- diagram</h5>
- <p>
- The <i>state machine diagram</i> specifies the behavior of a class. It
- is used when the class is state rich, i.e. has an event driven
- behavior. If the class has no states, activity diagrams can be used.
- </p>
- <p>
- The main elements in a <i>state machine diagram</i> are:
- </p>
- <ul>
- <li>States</li>
- <li>Transitions</li>
- <li>Effect code</li>
- <li>Triggering events</li>
- <li>Pseudo states, e.g. initial, final and choice points</li>
- </ul>
- <p>
- <center>
- <div class="thumb middle">
- <div class="thumbinner" style="width: 402px;">
- <a href="StateDiagram.bmp" class="image"><img
- class="thumbimage" width="400" align="middle" border="0"
- src="StateDiagram.bmp" /></a>
- <div class="thumbcaption">Figure 30: 'State machine diagram'</div>
- </div>
- </div>
- </center>
- </p>
- <p>
- The example (Figure 30) shows a <i>state machine diagram</i> that has
- an initial pseudo state, three states and transitions between them. On
- each transition (except for initialize), a <i>triggering event</i> is
- specified, which defines the event that makes the transition to be
- taken. Transitions and states may have effect code, which specify
- detailed behavior to be executed when an associated transition is
- taken.
- </p>
- <p>
- <i>State machine diagrams</i> are owned by classes.
- </p>
- <p>
- To create a <i>state machine diagram</i>, right click on the owning
- class and select <b>New Diagram &gt; Create a new State Machine
- Diagram</b> from its context menu.
- </p>
- <h3 id="7.4.2_Model_elements">7.4.2 Model elements</h3>
- <p>When doing ordinary UML modeling in Papyrus, the most common
- modeling elements are packages, use cases, actors and classes.</p>
- <p>
- Modeling elements can be added in some appropriate diagram type
- described in section <a href="#7.4.1_Diagrams">Diagrams</a> or just
- added direct in the Model Explorer, using the context menu of the
- owning modeling element.
- </p>
- <h4 id="7.4.2.1_Package">7.4.2.1 Package</h4>
- <p>
- A <i>package</i> is a general UML grouping element, comparable to a
- folder in Windows or a directory in Unix. It is used to bring order in
- the model. A <i>package</i> may have a semantical meaning (e.g.
- representing a subsystem) and then a UML stereotype, defined in a
- applied UML Profile, may be added to it (e.g. &lt;&lt; subsystem
- &gt;&gt;). To create a new <i>package</i>, right click on the owning
- element, e.g. the model package and from the context menu select <b>New
- Child &gt; Create a new Package</b>
- </p>
- <p>
- <img title="Figure 31: Create a new ''Package'"
- alt="Figure 31: Create a new ''Package'" border="0"
- src="NewPackage.bmp" />
- </p>
- <h4 id="7.4.2.2_Use_Case">7.4.2.2 Use Case</h4>
- <p>
- A <i>use case</i> is a functionality in the system. A <i>use case</i>
- is a model of the dialogue between actors and the system. It should
- return a result of measurable value to at least one actor. A <i>use
- case</i> is initiated by an actor to invoke a certain functionality in
- the system. A <i>use case</i> is a complete and meaningful flow of
- events. Taken together, all <i>use cases</i> constitute all possible
- ways of using the system.
- </p>
- <p>
- To create a new <i>use case</i>, right click on the owning element,
- e.g. a package and from the context menu select <b>New Child &gt;
- Create a new UseCase</b>
- </p>
- <p>
- [[Image:NewUseCase.bmp|Figure 32: Create a new <i>use case</i>]]
- </p>
- <h4 id="7.4.2.3_Actor">7.4.2.3 Actor</h4>
- <p>
- An <i>actor</i> is something external to the system, but interacts
- with it. An <i>actor</i> may be a human being or another system. It
- may be active or passive. An <i>actor</i> interacts (active <i>actor</i>)
- or receive (passive <i>actor</i>) information from one or several use
- cases.
- </p>
- <p>
- To create a new <i>actor</i>, right click on the owning element, e.g.
- a package and from the context menu select <b>New Child &gt;
- Create a new Actor</b>
- </p>
- <p>
- [[Image:NewActor.bmp|Figure 33: Create a new <i>actor</i>]]
- </p>
- <h4 id="7.4.2.4_Class">7.4.2.4 Class</h4>
- <p>
- A <i>class</i> fulfills all its responsibilities through its
- attributes, operations and relationships.
- </p>
- <p>
- Collectively attributes define the structure of a <i>class</i>. A
- class may have any number of attributes or none. Attributes are
- typically implemented as variables. An attribute has a type, which
- tells us what kind of attribute it is. Typical types of attributes are
- integer, Boolean, real, and enumeration. These types are called
- primitive types. More complex types are defined by other <i>classes</i>.
- </p>
- <p>
- Collectively operations define the behavior of the <i>class</i>. A <i>class</i>
- may have any number of operations or none. Operations are implemented
- as functions or procedures.
- </p>
- <p>
- To create a new <i>class</i>, right click on the owning element, e.g.
- a package and from the context menu select <b>New Child &gt;
- Create a new Class</b>
- </p>
- <p>
- [[Image:NewClass.bmp|Figure 34: Create a new <i>class</i>]]
- </p>
- <h5 id="7.4.2.5.1_Attributes_on_Classes">7.4.2.5.1 Attributes on
- Classes</h5>
- <p>
- When a <i>class</i> is created, <i>attributes</i> can be added to it
- by using the context menu of the <i>class</i>. To create a new <i>attribute</i>
- on the a <i>class</i> select <b>New Child &gt; Create a new
- Property</b> from its context menu.
- </p>
- <p>
- [[Image:NewAttribute.bmp|Figure 35: Create a new <i>attribute</i>]]
- </p>
- <p>The visibility, type and default value of the attribute are set
- in the properties view when the attribute is selected.</p>
- <h5 id="7.4.2.5.2_Operations_on_Classes">7.4.2.5.2 Operations on
- Classes</h5>
- <p>
- When a <i>class</i> is created, <i>operations</i> can be added to it
- by using the context menu of the <i>class</i>. To create a new <i>operation</i>
- on the a <i>class</i> select <b>New Child &gt; Create a new
- Operation</b> from its context menu.
- </p>
- <p>
- [[Image:NewOperation.bmp|Figure 36: Create a new <i>operation</i>]]
- </p>
- <p>The visibility, arguments and return type of the operation are
- set in the properties view when the operation is selected.</p>
- <h3 id="7.4.3_Relationships">7.4.3 Relationships</h3>
- <p>There are different types of relationships that can be used in
- diagrams, hence in the model between different modeling elements.</p>
- <pre> <div class="thumb middle">
- <div class="thumbinner" style="width: 302px;">
- <a href="Relationships.bmp" class="image"><img
- class="thumbimage" width="300" align="middle" border="0"
- src="Relationships.bmp" /></a>
- </div>
- </div>
-</pre>
- <p>
- Navigability can be unidirectional or bidirectional for <i>Association</i>,
- <i>Aggregation</i> and <i>Composition</i>.
- </p>
- <p>
- <i>Association</i> specifies peer-to-peer relationships between model
- elements, e.g. if a Class-x has an attribute of type Class-y, it can
- be viewed in a class diagram as and <i>Association</i> between Class-x
- and Class-y.
- </p>
- <p>
- <i>Aggregation</i> is used to model a whole/part relationship between
- model elements. The part element can exist without the whole. <i>Aggregation</i>
- causes the generated code to contain the aggregate either by reference
- or by value, depending on the details of the relationship. E.g. to
- model an aggregation, the aggregate (Department) has an aggregation
- association to its constituent parts (Employee). A hollow diamond is
- attached to the end of an association path on the side of the
- aggregate (the whole) to indicate aggregation.
- </p>
- <p>
- <i>Composition</i> is an aggregation with strong ownership, i.e. when
- the container is destroyed, all of its composite objects are destroyed
- as well.
- </p>
- <p>
- <i>Dependency</i> is a relationship in which one model element uses
- another. <i>Dependency</i> may exist between classes if a message is
- sent from one class to the other or if one class mentions the other as
- a parameter to an operation. <i>Dependency</i> may exist between
- packages if one package is dependent on another.
- </p>
- <p>
- A <i>Dependency</i> relationship causes a class to be generated with
- inclusions or references to another class.
- </p>
- <p>
- A <i>Generalization</i> relationship causes a class to be generated as
- a subclass of another class.
- </p>
- <p>
- The <i>Realizes</i> relationship specifies that, e.g. an
- implementation realizes a specification. The <i>Realizes</i>
- relationship does not affect the code.
- </p>
- <p>
- To create a relationship between two modeling elements, use the tool
- palette in the diagram editor, e.g. to create an <i>Association</i>
- between two classes, select the <i>Association</i> tool in the tool
- åalette, click on the source element and then click on the destination
- element as described in figure 37.
- </p>
- <p>
- [[Image:ClassDiagramEditorNewAss.bmp|center|thumb|500px|Figure 37:
- Create a new <i>Association</i>]]
- </p>
- <p>
- In the <i>Edges</i> drawer in the tool palette, all available
- relationships are shown. To create a <i>Generalization</i>
- relationship, select the <i>Generalization</i> tool from the tool
- palette and follow the same procedure as described.
- </p>
- <p>
- The <i>Aggregation</i> and the <i>Composition</i> relationships are a
- special kind of an <i>Association</i> relationship. To create any of
- these, an <i>Association</i> relationship needs first to be created.
- Then select the created <i>Association</i> and in the properties view,
- change the <i>Aggregation</i> field at the appropriate end of the <i>Association</i>
- to <i>shared</i>(if an <i>Aggregation</i> is desired) or to <i>composite</i>
- (if a <i>Composition</i> is desired). Figure 38 shows how to do it.
- </p>
- <p>
- [[Image:ClassDiagramEditorNewAgg.bmp|center|thumb|500px|Figure 38:
- Create a new <i>Association</i>]]
- </p>
- <p>
- When the <i>Association</i> is created, the <i>Aggregation</i> field
- is set to <i>none</i> by default. When doing the change at the
- destination end (as in figure 38), the diamond shows up at the source
- end of the relationship.
- </p>
- <h2 id="7.5_UML_RT_modeling">
- <div id="UMLRTmodeling">7.5 UML RT modeling</div>
- </h2>
- <p>
- When creating models, UML is used. UML is very general and provides
- possibilities to profile the basic UML in order to efficiently use it
- for a specific domain. When using UML for RT modeling with Capsules
- and Protocols, the UML RT profile is applied. When a profile is
- applied, it can be viewed as Papyrus is specialized. There is a
- specific use case of Papyrus to develop UML profiles and when doing
- so, a domain specific modeling language is defined. This use case is
- described in section <a href="#7.10_UML_profiling">UML profiling</a>
- in this user guide.
- </p>
- <h3 id="7.5.1_Additional_modeling_elements">7.5.1 Additional
- modeling elements</h3>
- <h4 id="7.5.1.1_Capsule_Class">7.5.1.1 Capsule Class</h4>
- <h4 id="7.5.1.2_Protocol_Class">7.5.1.2 Protocol Class</h4>
- <h3 id="7.5.2_Using_C_in_a_model">7.5.2 Using C in a model</h3>
- <h3 id="7.5.3_C_service_library">7.5.3 C service library</h3>
- <h4 id="7.5.3.1_Sending_messages">7.5.3.1 Sending messages</h4>
- <h3 id="7.5.4_Transformation_from_model_to_code">7.5.4
- Transformation from model to code</h3>
- <h3 id="7.5.5_Edit_the_generated_code">7.5.5 Edit the generated
- code</h3>
- <h3 id="7.5.6_Compiling_and_linking_the_generated_code">7.5.6
- Compiling and linking the generated code</h3>
- <h3 id="7.5.7_Using_external_libraries">7.5.7 Using external
- libraries</h3>
- <h3 id="7.5.8_Running_the_application">7.5.8 Running the
- application</h3>
- <h3 id="7.5.9_Model_components">7.5.9 Model components</h3>
- <h2 id="7.6_Papyrus_in_a_team_environment">
- <div id="Papyrusinateamenvironment">7.6 Papyrus in a team
- environment</div>
- </h2>
- <h3 id="7.6.1_Model_fragmentation">7.6.1 Model fragmentation</h3>
- <h3 id="7.6.2_Source_configuration_management">7.6.2 Source
- configuration management</h3>
- <h3 id="7.6.3_Compare_and_Merge">7.6.3 Compare and Merge</h3>
- <h2 id="7.7_Model_validation">
- <div id="Modelvalidation">7.7 Model validation</div>
- </h2>
- <h3 id="7.7.1_Object_Constrain_Language_.28OCL.29">7.7.1 Object
- Constrain Language (OCL)</h3>
- <h3 id="7.7.2_Defining_constraints_using_OCL">7.7.2 Defining
- constraints using OCL</h3>
- <h2 id="7.8_Searching">
- <div id="Searching">7.8 Searching</div>
- </h2>
- <h2 id="7.9_Sample_models">7.9 Sample models</h2>
- <p>In the Papyrus installation directory There are several sample
- models</p>
- <h3 id="7.9.1_Class_model_with_inheritance">7.9.1 Class model with
- inheritance</h3>
- <h3 id="7.9.2_Send_and_receive_data">7.9.2 Send and receive data</h3>
- <h3 id="7.9.3_Interprocess_communication">7.9.3 Interprocess
- communication</h3>
- <h2 id="7.10_UML_profiling">
- <div id="UMLprofiling">7.10 UML profiling</div>
- </h2>
- <p>TBD include the information in the user guide "About UML
- profiling"</p>
- <h1 id="8_Support">8 Support</h1>
- <p>To report bugs, suggest improvements, view the status of the
- Papyrus project, discuss different Papyrus subjects, etc. please use
- the following references:</p>
- <ul>
- <li><a href="http://www.eclipse.org/papyrus/">The Papyrus
- project home page</a></li>
- <li><a href="http://www.eclipse.org/forums/index.php/f/121/">The
- Papyrus discussion forum</a></li>
- <li>Proposals for Papyrus improvements</li>
- <li><a
- href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Modeling&amp;product=MDT.Papyrus&amp;component=Core&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=exact&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse%20same%20sort%20as%20last%20time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Bugzilla_to_report_bugs</a></li>
- </ul>
- <h1 id="9_References">9 References</h1>
-</body>
-</html> \ No newline at end of file
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head><body><h1 id="1_Overview">1 Overview</h1><p>Papyrus is an environment for editing any kind of <a href="http://www.eclipse.org/modeling/emf/">EMF model</a>, particularly supporting UML 2 (<a href="http://www.omg.org/spec/UML/2.4.1/">Unified Modeling Language (UML) version 2.4.1</a> ) and related modeling languages such as SysML (<a href="http://www.omg.org/spec/SysML/">System Modeling Language</a> ) and MARTE (<a href="http://www.omg.org/omgmarte/Specification.htm/">Modeling and Analysis of Real-Time and Embedded systems</a> ). Papyrus also offers very advanced support for UML profiles that enables users to define editors for DSLs (Domain Specific Languages) based on the UML 2 standard.</p><p>Papyrus is a collection of plug-ins and features on top of the Eclipse Modeling Framework. For more information about Eclipse, please go to the Eclipse web site <a href="http://www.eclipse.org/">eclipse.org</a>. Some of the terminology used in this Papyrus user guide are basic Eclipse concepts and briefly described here. To get more information about the Eclipse concepts, please visit the <i>Workbench User Guide</i> by selecting <b>Help &gt; Help Contents</b> from within Eclipse.</p><h2 id="1.1_Table_of_Contents">1.1 Table of Contents</h2><ol style="list-style: none;"><li><a href="#1_Overview">1 Overview</a><ol style="list-style: none;"><li><a href="#1.1_Table_of_Contents">1.1 Table of Contents</a></li></ol></li><li><a href="#2_Introduction">2 Introduction</a><ol style="list-style: none;"><li><a href="#2.1_Legend">2.1 Legend</a></li></ol></li><li><a href="#3_Installation">3 Installation</a><ol style="list-style: none;"><li><a href="#3.1_Install_Eclipse_Standard">3.1 Install Eclipse Standard</a></li><li><a href="#3.2_Install_basic_Papyrus">3.2 Install basic Papyrus</a></li><li><a href="#3.3_Additional_installation_steps">3.3 Additional installation steps</a></li></ol></li><li><a href="#4_Eclipse">4 Eclipse</a><ol style="list-style: none;"><li><a href="#4.1_Architecture">4.1 Architecture</a></li><li><a href="#4.2_Workspace">4.2 Workspace</a></li><li><a href="#4.3_Resources">4.3 Resources</a></li><li><a href="#4.4_Workbench">4.4 Workbench</a><ol style="list-style: none;"><li><a href="#4.4.1_Views">4.4.1 Views</a><ol style="list-style: none;"><li><a href="#4.4.1.1_Single_views">4.4.1.1 Single views</a></li><li><a href="#4.4.1.2_Stacked_views">4.4.1.2 Stacked views</a></li></ol></li></ol></li><li><a href="#4.5_Preferences">4.5 Preferences</a></li><li><a href="#4.6_Import_and_Export">4.6 Import and Export</a></li></ol></li><li><a href="#5_Modeling">5 Modeling</a><ol style="list-style: none;"><li><a href="#5.1_Model_and_diagrams">5.1 Model and diagrams</a></li></ol></li><li><a href="#6_Tutorials">6 Tutorials</a><ol style="list-style: none;"><li><a href="#6.1_Getting_started_with_general_Eclipse_functionality">6.1 Getting started with general Eclipse functionality</a><ol style="list-style: none;"><li><a href="#6.1.1_Exploring_perspectives">6.1.1 Exploring perspectives</a><ol style="list-style: none;"><li><a href="#6.1.1.1_Exploring_the_.27.27Papyrus.27.27_perspective">6.1.1.1 Exploring the ''Papyrus'' perspective</a></li><li><a href="#6.1.1.2_Exploring_and_customizing_the_Resource_perspective">6.1.1.2 Exploring and customizing the Resource perspective</a></li></ol></li><li><a href="#6.1.2_Creating_a_new_project.2C_folder_and_files">6.1.2 Creating a new project, folder and files</a><ol style="list-style: none;"><li><a href="#6.1.2.1_Creating_a_new_general_project">6.1.2.1 Creating a new general project</a></li><li><a href="#6.1.2.2_Creating_a_new_folder">6.1.2.2 Creating a new folder</a></li><li><a href="#6.1.2.3_Creating_and_editing_a_new_file">6.1.2.3 Creating and editing a new file</a></li><li><a href="#6.1.2.4_Creating_another_file">6.1.2.4 Creating another file</a></li></ol></li><li><a href="#6.1.3_Exploring_editors_and_views">6.1.3 Exploring editors and views</a><ol style="list-style: none;"><li><a href="#6.1.3.1_Maximizing_and_restoring_an_editor">6.1.3.1 Maximizing and restoring an editor</a></li><li><a href="#6.1.3.2_Tiling_and_restacking_the_editors">6.1.3.2 Tiling and restacking the editors</a></li><li><a href="#6.1.3.3_Organizing_views">6.1.3.3 Organizing views</a></li><li><a href="#6.1.3.4_Using_view_menus">6.1.3.4 Using view menus</a></li><li><a href="#6.1.3.5_Closing_and_opening_views">6.1.3.5 Closing and opening views</a></li></ol></li><li><a href="#6.1.4_Exporting_and_importing_a_project">6.1.4 Exporting and importing a project</a><ol style="list-style: none;"><li><a href="#6.1.4.1_Exporting_a_project">6.1.4.1 Exporting a project</a></li><li><a href="#6.1.4.2_Removing_the_project_from_the_workspace">6.1.4.2 Removing the project from the workspace</a></li><li><a href="#6.1.4.3_Importing_a_project">6.1.4.3 Importing a project</a></li></ol></li><li><a href="#6.1.5_Conclusion">6.1.5 Conclusion</a></li></ol></li><li><a href="#6.2_Creating_profiles">6.2 Creating profiles</a></li><li><a href="#6.3_Creating_models_using_Papyrus">6.3 Creating models using Papyrus</a><ol style="list-style: none;"><li><a href="#6.3.1_Use-case_modeling">6.3.1 Use-case modeling</a></li><li><a href="#6.3.2_Design_modeling">6.3.2 Design modeling</a><ol style="list-style: none;"><li><a href="#6.3.2.1_Create_a_new_UML_project">6.3.2.1 Create a new UML project</a></li><li><a href="#6.3.2.2_Create_new_packages_to_be_used_for_classes">6.3.2.2 Create new packages to be used for classes</a></li><li><a href="#6.3.2.3_Create_new_classes">6.3.2.3 Create new classes</a></li><li><a href="#6.3.2.4_Create_new_class_diagrams">6.3.2.4 Create new class diagrams</a></li><li><a href="#6.3.2.5_Create_new_operations_and_attributes">6.3.2.5 Create new operations and attributes</a></li><li><a href="#6.3.2.6_Create_new_relationships_between_classes">6.3.2.6 Create new relationships between classes</a></li><li><a href="#6.3.2.7_Create_a_new_package_to_be_used_for_objects">6.3.2.7 Create a new package to be used for objects</a></li><li><a href="#6.3.2.8_Create_new_objects">6.3.2.8 Create new objects</a></li><li><a href="#6.3.2.9_Create_a_new_class_diagram">6.3.2.9 Create a new class diagram</a></li><li><a href="#6.3.2.10_Create_new_relationships_between_objects">6.3.2.10 Create new relationships between objects</a></li><li><a href="#6.3.2.11_Conclusion">6.3.2.11 Conclusion</a></li></ol></li><li><a href="#6.3.3_RT_modeling">6.3.3 RT modeling</a></li></ol></li></ol></li><li><a href="#7_Papyrus">7 Papyrus</a><ol style="list-style: none;"><li><a href="#7.1_Papyrus_resources_in_the_workspace">7.1 Papyrus resources in the workspace</a></li><li><a href="#7.2_The_Papyrus_perspective">7.2 The Papyrus perspective</a><ol style="list-style: none;"><li><a href="#7.2.1_Project_Explorer_view">7.2.1 Project Explorer view</a></li><li><a href="#7.2.2_Model_Explorer_view">7.2.2 Model Explorer view</a></li><li><a href="#7.2.3_Editing_view">7.2.3 Editing view</a></li><li><a href="#7.2.4_Outline_view">7.2.4 Outline view</a></li><li><a href="#7.2.5_Properties_view">7.2.5 Properties view</a></li><li><a href="#7.2.6_Model_Validation_view">7.2.6 Model Validation view</a></li><li><a href="#7.2.7_Search_view">7.2.7 Search view</a></li></ol></li><li><a href="#7.3_Diagram_editing_in_Papyrus">7.3 Diagram editing in Papyrus</a><ol style="list-style: none;"><li><a href="#7.3.1_Diagram_editors">7.3.1 Diagram editors</a></li><li><a href="#7.3.2_Basic_tool_techniques">7.3.2 Basic tool techniques</a><ol style="list-style: none;"><li><a href="#7.3.2.1_Creating_diagrams">7.3.2.1 Creating diagrams</a></li><li><a href="#7.3.2.2_Scrolling_and_panning_in_diagrams">7.3.2.2 Scrolling and panning in diagrams</a></li><li><a href="#7.3.2.3_Creating_an_element_in_a_diagram">7.3.2.3 Creating an element in a diagram</a></li><li><a href="#7.3.2.4_Delete_and_hide">7.3.2.4 Delete and hide</a></li><li><a href="#7.3.2.5_Formating_and_validating_diagrams">7.3.2.5 Formating and validating diagrams</a></li></ol></li></ol></li><li><a href="#7.4_UML_modeling">7.4 UML modeling</a><ol style="list-style: none;"><li><a href="#7.4.1_Package">7.4.1 Package</a></li><li><a href="#7.4.2_Use-case">7.4.2 Use-case</a></li><li><a href="#7.4.3_Actor">7.4.3 Actor</a></li><li><a href="#7.4.4_Class">7.4.4 Class</a><ol style="list-style: none;"><li><a href="#7.4.4.1_Attributes_on_classes">7.4.4.1 Attributes on classes</a></li><li><a href="#7.4.4.2_Operations_on_classes">7.4.4.2 Operations on classes</a></li></ol></li><li><a href="#7.4.5_Object">7.4.5 Object</a></li><li><a href="#7.4.6_Relationships">7.4.6 Relationships</a></li><li><a href="#7.4.7_Diagrams">7.4.7 Diagrams</a><ol style="list-style: none;"><li><a href="#7.4.7.1_Diagrams_related_to_use-cases">7.4.7.1 Diagrams related to use-cases</a></li><li><a href="#7.4.7.2_Diagrams_related_to_classes">7.4.7.2 Diagrams related to classes</a></li></ol></li></ol></li><li><a href="#7.5_UML_RT_modeling">7.5 UML RT modeling</a><ol style="list-style: none;"><li><a href="#7.5.1_Additional_modeling_elements">7.5.1 Additional modeling elements</a><ol style="list-style: none;"><li><a href="#7.5.1.1_Capsule_class">7.5.1.1 Capsule class</a></li><li><a href="#7.5.1.2_Protocol_class">7.5.1.2 Protocol class</a></li></ol></li><li><a href="#7.5.2_Using_C.2B.2B_in_a_model">7.5.2 Using C++ in a model</a></li><li><a href="#7.5.3_C.2B.2B_service_library">7.5.3 C++ service library</a><ol style="list-style: none;"><li><a href="#7.5.3.1_Sending_messages">7.5.3.1 Sending messages</a></li></ol></li><li><a href="#7.5.4_Transformation_from_model_to_code">7.5.4 Transformation from model to code</a></li><li><a href="#7.5.5_Edit_the_generated_code">7.5.5 Edit the generated code</a></li><li><a href="#7.5.6_Compiling_and_linking_the_generated_code">7.5.6 Compiling and linking the generated code</a></li><li><a href="#7.5.7_Using_external_libraries">7.5.7 Using external libraries</a></li><li><a href="#7.5.8_Running_the_system">7.5.8 Running the system</a></li></ol></li><li><a href="#7.6_Papyrus_in_a_team_environment">7.6 Papyrus in a team environment</a><ol style="list-style: none;"><li><a href="#7.6.1_Model_fragmentation">7.6.1 Model fragmentation</a></li><li><a href="#7.6.2_Source_configuration_management">7.6.2 Source configuration management</a></li><li><a href="#7.6.3_Compare_and_Merge">7.6.3 Compare and Merge</a></li></ol></li><li><a href="#7.7_Model_validation">7.7 Model validation</a><ol style="list-style: none;"><li><a href="#7.7.1_Object_Constrain_Language_.28OCL.29">7.7.1 Object Constrain Language (OCL)</a></li><li><a href="#7.7.2_Defining_constraints_using_OCL">7.7.2 Defining constraints using OCL</a></li></ol></li><li><a href="#7.8_Searching">7.8 Searching</a></li><li><a href="#7.9_Sample_models">7.9 Sample models</a><ol style="list-style: none;"><li><a href="#7.9.1_Class_model_with_inheritance">7.9.1 Class model with inheritance</a></li><li><a href="#7.9.2_Send_and_receive_data">7.9.2 Send and receive data</a></li><li><a href="#7.9.3_Interprocess_communication">7.9.3 Interprocess communication</a></li></ol></li><li><a href="#7.10_UML_profiling">7.10 UML profiling</a></li></ol></li><li><a href="#8_Support">8 Support</a></li><li><a href="#9_References">9 References</a></li></ol><h1 id="2_Introduction">2 Introduction</h1><p>Papyrus is built on the extensible Eclipse framework and is an implementation of the OMG (Object Management Group) specification <a href="http://www.omg.org/spec/UML/2.4.1/">Unified Modeling Language (UML) version 2.4.1</a>. Papyrus is a comprehensive UML modeling environment, where many diagrams can be used to view different aspects of a system. Behind all diagrams, there is a model where all modeling elements, used in these diagrams, are kept. The model keeps the consistency between the diagrams.</p><p>UML diagrams can help system architects and developers understand, collaborate on and develop a system. Architects and managers can use diagrams to visualize an entire system or project and separate systems into smaller components for development.</p><p>System developers can use diagrams to specify, visualize, and document systems, which can increase efficiency and improve their system design. Also code can be generated from UML models.</p><p>Since UML is general-purpose modeling language in the field of software engineering, it is possible to adapt UML to specific domains. This is done by creating and applying UML profiles. Papyrus is a complete UML modeling environment, which also can be used to develop UML profiles.</p><h2 id="2.1_Legend">2.1 Legend</h2><p>In this user guide, bold text is used for menu selections, e.g. <b>Help &gt; Welcome</b> means from the <b>Help</b> item on the main menu, select the <b>Welcome</b> item.</p><p>A context menu is the pop-up menu that appears when right clicking on something, e.g. right click on a class select <b>New Child &gt; Create a new Operation</b>, will create a new operation on the class, using the class' context menu.</p><p>When text should be typed in, it is indicated by inline code, e.g. <code>this text should be typed in</code>.</p><p>Fields in wizards, pop-up windows, different editors, radio buttons and check boxes are indicated by italic text, e.g. set the field <i>Name</i> to <code>MyClass</code>.</p><h1 id="3_Installation"><div id="Installation">3 Installation</div></h1><p>It is a several step process to install Papyrus and its optional components. The <i>Eclipse Standard</i> must first be installed and when that is done, Papyrus is installed on top of <i>Eclipse Standard</i>.</p><h2 id="3.1_Install_Eclipse_Standard">3.1 Install Eclipse Standard</h2><p><i>Eclipse Standard</i> is installed from the <a href="http://www.eclipse.org/downloads/">Eclipse download page</a>. On the download page select <i>Eclipse Standard &lt;version number&gt;</i> to install. Follow the install wizard to complete the installation.</p><h2 id="3.2_Install_basic_Papyrus">3.2 Install basic Papyrus</h2><p>When <i>Eclipse Standard</i> is installed, go to <b>Help &gt; Install New Software</b> and type in <code><a href="http://download.eclipse.org/releases/kepler/">http://download.eclipse.org/releases/kepler/</a></code> in the field named <i>Work with:</i>.</p><p><b>Note!</b> When this user guide was written, the Kepler release of Eclipse was the latest. Select the latest official Eclipse release.</p><p><b>Note!</b> In some industrial environments, a proxy has to be used instead of this type of direct URL to the Eclipse web-site. To configure Eclipse to use a proxy is done under <b>Windows &gt; Preferences</b> and <b>General &gt; Network Connections</b></p><p><center><div class="thumb middle"><div class="thumbinner" style="width:566px;"><a href="InstallNewSoftware.bmp" class="image"><img class="thumbimage" width="564" align="middle" border="0" src="InstallNewSoftware.bmp"/></a><div class="thumbcaption">Figure 1: Install New Software wizard</div></div></div></center></p><p>In the <i>Name</i> column of the wizard, scroll down to <i>Modeling</i> and expand to the next level. Under <i>Modeling</i>, select <i>Papyrus UML</i> and follow the installation wizard to complete the installation.</p><p>When Eclipse is restarted, the environment is now ready for UML modeling.</p><h2 id="3.3_Additional_installation_steps">3.3 Additional installation steps</h2><p>After installation of the basic Papyrus feature, go to <b>Help &gt; Install Papyrus Additional Components</b>. In the wizard that pops up, select the needed additional Papyrus components, e.g. to be able to do UML RT modeling, the <i>Real Time</i> component is needed. It is also recommended to install the <i>Diagram Stylesheets</i> and <i>Papyrus Compare</i> components. Follow the installation wizard to complete the installation.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:439px;"><a href="InstallPapyrusComp.bmp" class="image"><img class="thumbimage" width="437" align="middle" border="0" src="InstallPapyrusComp.bmp"/></a><div class="thumbcaption">Figure 2: The Install Papyrus Additional Components wizard</div></div></div></center></p><h1 id="4_Eclipse">4 Eclipse</h1><p>Papyrus is built on the Eclipse framework, so most of its look and feel is inherited from Eclipse.</p><p>The Eclipse framework has a plug-in architecture, where plug-ins can be grouped into features. Features and plug-ins can be added to an existing Eclipse installation.</p><h2 id="4.1_Architecture">4.1 Architecture</h2><p>The plug-in architecture applies also for all subsystems. A plug-in is the smallest unit of Eclipse Platform functionality that can be developed and delivered separately. Usually, a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform's functionality is located in plug-ins. Plug-ins can be grouped into features.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="EclipseArchitecture.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="EclipseArchitecture.bmp"/></a><div class="thumbcaption">Figure 3: The Eclipse architecture</div></div></div></center></p><p>Plug-ins are coded in Java. A typical plug-in consists of Java code in a JAR (Java Archive) library, some read-only files, and other resources such as images, Web templates, message catalogs, native code libraries, and so on. Some plug-ins do not contain code at all. One such example is a plug-in that contributes online help in the form of HTML pages. A single plug-in’s code libraries and read-only content are located together in a directory in the file system, or at a base URL on a server. There is also a mechanism that permits a plug-in to be synthesized from several separate fragments, each in their own directory or URL. This is the mechanism used to deliver separate language packs for an internationalized plug-in.</p><p>Each plug-in has a manifest file declaring its interconnections to other plug-ins. The interconnection model is simple: a plug-in declares any number of named extension points, and any number of extensions to one or more extension points in other plug-ins.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:292px;"><a href="Feature-Plug-in.bmp" class="image"><img class="thumbimage" width="290" align="middle" border="0" src="Feature-Plug-in.bmp"/></a><div class="thumbcaption">Figure 4: Plug-ins and Features</div></div></div></center></p><h2 id="4.2_Workspace"><div id="Workspace">4.2 Workspace</div></h2><p>The workspace is located in the file-system and is the place where Eclipse resources (files, folders and projects) are stored. When Eclipse is started, a pop-up window appears, where a workspace should be selected. One instance of Eclipse is connected to one workspace.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:595px;"><a href="WorkspacePopup.bmp" class="image"><img class="thumbimage" width="593" align="middle" border="0" src="WorkspacePopup.bmp"/></a><div class="thumbcaption">Figure 5: Pop-up window to select the workspace</div></div></div></center></p><p>In the file system all resources are stored in the selected workspace and in the same hierarchical structure as in the <i>Project Explorer</i>.</p><h2 id="4.3_Resources">4.3 Resources</h2><p>Resources are a collective term for the projects, folders, and files that exist in the workbench. The resources are stored in the workspace, where the projects are on the first level. Inside a project, there are files and folders in the same hierarchical structure as in the <i>Project Explorer</i> and <i>Model Explorer</i>.</p><p>Files appear in the file system as files and folders are Unix directories or Windows folders and may contain other files and folders. Each time a file is saved, a copy is saved, which makes it possible to replace the current file with a previous edit or even restore a deleted file. Earlier versions of a file can be compared to the contents of all the local edits. Each edit in the local history is time stamped, i.e. is uniquely represented by the date and time the file was saved.</p><p>Projects can be viewed as the top level folder in the file system under the workspace. In Eclipse there are different types of projects, e.g. Model, C/C or Java projects and they are the top level resource in the <i>Project Explorer</i>. Projects can be closed and opened in the <i>Project Explorer</i>.</p><h2 id="4.4_Workbench"><div id="Workbench">4.4 Workbench</div></h2><p>The workbench is the Eclipse user interface and is used to navigate, view, and edit resources in a workspace, i.e. the workbench is the Eclipse IDE's application window. The workbench presents one or more editors and <i>views</i> that are gathered into adjustable groups (<i>perspectives</i>).</p><p>The first time Eclipse is started, after the installation, a <i>Welcome</i> page is presented. Take a few minutes to explore the product overview and getting started information that is located here.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:482px;"><a href="WelcomePage.bmp" class="image"><img class="thumbimage" width="480" align="middle" border="0" src="WelcomePage.bmp"/></a><div class="thumbcaption">Figure 6: The Eclipse welcome page</div></div></div></center></p><p>To return to the ordinary workbench, just click on the workbench icon up to the right. When starting Eclipse, subsequent times, the workbench appears directly. To visit the welcome page at any time, just select <b>Help &gt; Welcome</b>.</p><p>The title bar of the workbench window and the little Papyrus icon to the right indicates which <i>perspective</i> is active. In this example, the Papyrus <i>perspective</i> is in use. The <i>Project Explorer</i> and the <i>Model Explorer, Outline, Properties</i> views, etc. are open, along with a <i>Class Diagram</i> editor and its tool palette.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:514px;"><a href="Workbench.bmp" class="image"><img class="thumbimage" width="512" align="middle" border="0" src="Workbench.bmp"/></a><div class="thumbcaption">Figure 7: The Papyrus perspective in the workbench</div></div></div></center></p><p>It is easy to toggle between perspectives by clicking on some shown <i>perspective</i> in top of the right hand corner or open a new one by clicking on the <i>Open Perspective</i> icon <img border="0" src="IkonOpenPerspective.png"/> and browse to the <i>perspective</i> to open. It is also possible to reorganize a <i>perspective</i>, open/close <i>views</i>, customize menus, etc. and then save the <i>perspective</i> with a new name by <b>Window &gt; Save Perspective As ...</b>.</p><h3 id="4.4.1_Views">4.4.1 Views</h3><p><i>Views</i> and editors are the main visual entities that appear in the workbench. Any given <i>perspective</i> can contain multiple editors and a number of surrounding <i>views</i> that provide context.<i>Views</i> provide different ways to visualize, navigate and edit the resources in the Eclipse workspace. <i>Views</i> can be single or stacked on top of each other.</p><p><i>Views</i>, including editor views, can be resize, moved, detached. In addition, a <i>view</i> can be maximized to cover the entire workbench by double-clicking on its tab. By double-clicking once more, it will return to its original size. Some <i>views</i> has a view specific menu, e.g. <i>Project Explorer</i> view, where some specific view settings could be done.</p><p>To add a new <i>view</i> to the active <i>perspective</i>, use <b>Window &gt; Show View</b>and if the desired <i>view</i> does not appear on top of the pop-up menu, select <b>Other</b>, which opens up a <i>view</i> browser, where all available <i>views</i> are organized in different categories.</p><h4 id="4.4.1.1_Single_views">4.4.1.1 Single views</h4><p>In the workbench figure, above, several single views appears, e.g. <i>Outline, Class Diagram</i> editor, <i>Help, Project Explorer</i> and <i>Model Explorer</i> views. The <i>single view</i> has only one tab with the view name. By draging a <i>single view</i> tab and release it on another <i>single view</i> tab, <i>stacked views</i> are created.</p><h4 id="4.4.1.2_Stacked_views">4.4.1.2 Stacked views</h4><p>In the workbench figure, above, also <i>stacked views</i> appear, e.g. <i>Properties</i> and <i>Model Validation</i> views. To select the one that should be on top of the stack, just click on its tab and it becomes visible. By selecting a <i>stacked view</i> and drag it besides another view in the workbench, a <i>single view</i> will appear.</p><h2 id="4.5_Preferences">4.5 Preferences</h2><p>To customize the settings for the Eclipse workbench and the installed features, the preference window is used. Use <b>Windows &gt; Preferences</b> to open it, e.g. under <b>General &gt; Keys</b> in the preference window there are shortcuts and keys defined for the user interface. Here they can be redefined or own sets could be defined.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:558px;"><a href="Preferences.bmp" class="image"><img class="thumbimage" width="556" align="middle" border="0" src="Preferences.bmp"/></a><div class="thumbcaption">Figure 8: The preference window</div></div></div></center></p><p>The preference window pages can be searched using the filter function. To filter by matching the page title, simply type the name of the page and the available pages will be presented below.</p><p>The filter also searches on keywords. By the history controls (the left, right and drop-down arrows up in the right corner of the preference window) it is possible to navigate through previously viewed pages. To step back or forward several pages at a time, click the drop-down arrow and a list of the most recently viewed preference pages are displayed.</p><h2 id="4.6_Import_and_Export">4.6 Import and Export</h2><p>Projects can be shared between workspaces by using project import and export, which are done through wizards. To open the import wizard, use <b>File &gt; Import</b> and in several steps select what, where from and if it should be imported as a copy or just referenced. To export resources, There are also an export wizard, which is opened by <b>File &gt; Export</b> and select details about what should be exported, if it should be compressed and where to export it to.</p><table><tr><td><p><div class="thumb middle"><div class="thumbinner" style="width:422px;"><a href="ImportWiz.bmp" class="image"><img class="thumbimage" width="420" align="middle" border="0" src="ImportWiz.bmp"/></a><div class="thumbcaption">Figure 9: Import wizard</div></div></div> </p></td><td><p><div class="thumb middle"><div class="thumbinner" style="width:540px;"><a href="ExportWiz.bmp" class="image"><img class="thumbimage" width="538" align="middle" border="0" src="ExportWiz.bmp"/></a><div class="thumbcaption">Figure 10: Export wizard</div></div></div></p></td></tr></table><p>When importing a project into the used workspace, it can be copied by checking the box <i>Copy ...</i> in the import wizard. If this check box is unchecked, there will just be a reference to the other workspace and when editing that project, it will be edited in its original place. Be aware of that when doing so, several instances of Eclipse may edit the same resource.</p><p>When exporting a project, browse to the place where to export it to name it and select if and how compression should be used.</p><h1 id="5_Modeling">5 Modeling</h1><p>Papyrus is a comprehensive UML modeling environment, where diagrams can be used to view different aspects of a system. Behind all the diagrams, there is a model where the modeling elements, used in these diagrams, are stored. The model maintains the consistency between all diagrams.</p><p>A model is the collection of all the modeling elements and relationships that compose a software system. Papyrus enables the creation, viewing and manipulation of UML diagrams as specified in the <a href="http://www.omg.org/spec/UML/2.4.1/">UML 2 specification</a>.</p><p>The model defines every element, representing some part of the system. Multiple model diagrams can reference an element many times. Each of the different diagrams can view a different aspect of the system.</p><p>The model is the basis of the diagrams and keep the diagrams consistent. The diagrams are stored in the model's hierarchical structure. Some are owned by a modeling element like a class and some are just organized into packages and then owned by the package (a.k.a folders in basic Eclipse projects). <b>Note!</b> the top level of the model is the model package, which is a special kind of a package.</p><h2 id="5.1_Model_and_diagrams">5.1 Model and diagrams</h2><p>The model is the basis for all diagrams and maintains the consistency between the diagrams. The model is a collection of definitions of elements that compose the system and the relationships between them. Diagrams can be used to view subsets of the underlying model and from various view points. A model of a system may require many different diagrams to represent different views of the system for different project stakeholders.</p><p>In Papyrus, diagrams are be viewed and created in the <i>Model Explorer</i> view. The <i>Model Explorer</i> shows diagrams in their logical place within the model.</p><p>The visual representation of a system that diagrams provide can offer both low-level and high-level insights into the concepts and design of a system.</p><h1 id="6_Tutorials">6 Tutorials</h1><p>The tutorials are focused on selected topics regarding the use of Papyrus and contains step by step instructions on how to create and manipulate the workbench and models.</p><h2 id="6.1_Getting_started_with_general_Eclipse_functionality">6.1 Getting started with general Eclipse functionality</h2><p>This tutorial is about to understand the workbench environment and the basic Eclipse terminology.</p><h3 id="6.1.1_Exploring_perspectives">6.1.1 Exploring perspectives</h3><p>This part demonstrates the differences between the <i>Papyrus</i> and the <i>Resource</i> perspectives and also how to customize the <i>Resource</i> perspective.</p><h4 id="6.1.1.1_Exploring_the_.27.27Papyrus.27.27_perspective">6.1.1.1 Exploring the <i>Papyrus</i> perspective</h4><p>Explore the Papyrus default menus, toolbar, and views in the <i>Papyrus</i> perspective.</p><ol><li>To switch to the <i>Payrus</i> perspective, click <b>Window &gt; Open Perspective &gt; Other</b>. Then choose the <i>Papyrus</i> perspective. (Notice the workbench title bar and perspective bar reflect that the <i>Papyrus</i> perspective is active. Notice also the main menu items, toolbar buttons, and views that is visible in this perspective.)</li><li>Click <b>File &gt; New</b> and notice that the menu contains the items <i>Papyrus Project</i> and <i>Papyrus Model</i> among other items.</li><li>Click <b>Window &gt; Show View</b> and notice that the menu contains the items <i>Model Explorer</i>, <i>Model Validation</i> and more.</li></ol><h4 id="6.1.1.2_Exploring_and_customizing_the_Resource_perspective">6.1.1.2 Exploring and customizing the Resource perspective</h4><p>Explore the default menu, toolbar, and views in the <i>Resource</i> perspective and customize a menu.</p><ol><li>To switch to the <i>Resource</i> perspective, click <b>Window &gt; Open Perspective &gt; Other</b>. Then choose the <i>Resource</i> perspective. Notice that the workbench title bar and perspective bar reflect that the <i>Resource</i> perspective is active. (Notice the main menu items, toolbar buttons, and views visible in this perspective)</li><li>Click <b>File &gt; New</b> and notice that there are no Papyrus items in the menu.</li><li>Click <b>Window &gt; Show View</b> and notice that the menu does NOT contain the items <i>Model Explorer</i> and <i>Model Validation</i>.</li><li>Click <b>Window &gt; Customize Perspective</b>. Ensure that the workbench title bar and perspective bar reflect that the <i>Resource</i> perspective is active.</li><li>In the <i>Customize Perspective - Resource</i> pop-up window, select the <i>Shortcuts</i> tab and select <b>Show View</b> from the <i>Submenus</i> combo box.</li><li>Clear all check boxes in the <i>Shortcut Categories</i> list.</li><li>Click <i>General</i>(not check the check box) in the <i>Shortcut Categories</i> list, select the check box next to <i>Project Explorer</i> in the <i>Shortcuts</i> list, and click <i>OK</i>.</li><li>Click <b>Window &gt; Show View</b> and notice the menu now just contains the <i>Project Explorer</i> item.</li></ol><h3 id="6.1.2_Creating_a_new_project.2C_folder_and_files">6.1.2 Creating a new project, folder and files</h3><p>In this section a new project, folder and files will be created in the <i>Resource</i> perspective.</p><h4 id="6.1.2.1_Creating_a_new_general_project">6.1.2.1 Creating a new general project</h4><p>Create a new project in the <i>Resource</i> perspective by completing these steps:</p><ol><li>If necessary switch to the <i>Resource</i> perspective by clicking on <b>Window &gt; Open Perspective &gt; Other</b>. Then choose the <i>Resource</i> perspective. If the <i>Resource</i> perspective already is active, click on <b>Window &gt; Reset Perspective...</b> to get back to its default configuration.</li><li>Click <b>File &gt; New &gt; Project</b>.</li><li>In the <i>New Project</i> wizard, name the project <code>My Project</code> and click <i>Finish</i>.</li></ol><h4 id="6.1.2.2_Creating_a_new_folder">6.1.2.2 Creating a new folder</h4><p>Create a folder in the project:</p><ol><li>Right-click on <i>My Project</i> in the <i>Project Explorer</i> and select <b>New &gt; Folder</b>.</li><li>Type <code>Text Files</code> in the the field <i>Folder name</i>, and then click <i>Finish</i>.</li></ol><h4 id="6.1.2.3_Creating_and_editing_a_new_file">6.1.2.3 Creating and editing a new file</h4><p>Create a file in the folder:</p><ol><li>In the <i>Project Explorer</i>, right-click on the <i>Text Files</i> folder and select <b>New &gt; File</b>.</li><li>In the <i>New File</i> wizard, ensure that <i>My Project/Text Files</i> is the parent folder. Type <code>My File</code> as the file name and click <i>Finish</i>. (Notice that a text editor opens in the editing view for the created resource)</li><li>Enter any text into the editor view for <i>My File</i>. Notice the asterisk (*) next to the file name indicates unsaved changes.</li><li>Press <i>Ctrl S</i> to save the work. Notice that the asterisk disappears.</li></ol><h4 id="6.1.2.4_Creating_another_file">6.1.2.4 Creating another file</h4><p>Create another file in the <i>Text Files</i> folder, using the workbench menu this time.</p><ol><li>On the workbench menu, click <b>File &gt; New &gt; File</b>.</li><li>In the <i>New File</i> wizard, expand <i>My Project</i> and then select <i>Text Files</i> as the parent folder.</li><li>Type <code>My Other File</code> as the file name and click <i>Finish</i>.</li><li>Reviewing the contents of the <i>Project Explorer</i> view, which should be like this</li></ol><p><center><div class="thumb middle"><div class="thumbinner" style="width:202px;"><a href="MyProject.bmp" class="image"><img class="thumbimage" width="200" align="middle" border="0" src="MyProject.bmp"/></a></div></div></center></p><h3 id="6.1.3_Exploring_editors_and_views">6.1.3 Exploring editors and views</h3><p>This section demonstrates how to manipulate views and editors.</p><h4 id="6.1.3.1_Maximizing_and_restoring_an_editor">6.1.3.1 Maximizing and restoring an editor</h4><p>Maximize one of the editors to expand the viewable area:</p><ol><li>Double-click the file name on the editor tab for <i>My File</i>.</li><li>Double-click the file name again to restore the editor to its original size.</li></ol><h4 id="6.1.3.2_Tiling_and_restacking_the_editors">6.1.3.2 Tiling and restacking the editors</h4><p>Currently, the editors are stacked one in front of the other. Try tiling them horizontally and vertically:</p><ol><li>Click the <i>My Other File</i> editor tab and drag it to the bottom of the editor pane. Colored frames indicates how the views will be tiled. Drop the editor and notice that the editors are tiled horizontally.</li><li>Drag the <i>My Other File</i> editor tab to the left of the editor pane and release it. Notice that the editors are tiled vertically.</li><li>Restack the editors by dragging one of the editor tabs on top of the other.</li></ol><h4 id="6.1.3.3_Organizing_views">6.1.3.3 Organizing views</h4><p>Try moving a view:</p><ol><li>Drag the title bar of the <i>Outline</i> view onto the title bar of the <i>Project Explorer</i>.</li><li>Experiment by dragging the title bar of the <i>Outline</i> view to various locations within the workbench.</li><li>Return the <i>Outline</i> view to its original place to the lower left of the workbench. It is always possible to return to the default configuration of the active perspective by clicking on <b>Windows &gt; Reset Perspective...</b></li></ol><h4 id="6.1.3.4_Using_view_menus">6.1.3.4 Using view menus</h4><p>Some views has view menus, e.g. <i>Project Explorer</i> view, which is indicated by a down arrow in the upper-right corner of the view. Click this down arrow of the <i>Project Explorer</i> view and review the pull-down menu options specific for this view.</p><h4 id="6.1.3.5_Closing_and_opening_views">6.1.3.5 Closing and opening views</h4><p>If a view does not appear in the workbench, it can be open by using the <b>Window</b> menu:</p><ol><li>Close the <i>Project Explorer</i> view by right-click on the <i>Project Explorer</i> view tab and select <b>Close</b>.</li><li>Click <b>Window &gt; Show View &gt; Other</b> and type <code>Project Explorer</code> in the filter text box.</li><li>Select <i>Project Explorer</i> and click <i>OK</i> which opens the view again.</li></ol><h3 id="6.1.4_Exporting_and_importing_a_project">6.1.4 Exporting and importing a project</h3><p>This section demonstrates how projects can be shared between users and workspaces using the <i>export</i> and <i>import</i> feature.</p><h4 id="6.1.4.1_Exporting_a_project">6.1.4.1 Exporting a project</h4><p>Export <i>My Project</i> to a compressed file:</p><ol><li>Select <b>File &gt; Export...</b> from the workbench menu.</li><li>In the <i>Export</i> wizard, expand <b>General</b>, and then select <b>Archive File</b>. Click <i>Next</i>.</li><li>Check the check box next to <i>My Project</i> in the resource list.</li><li>Click <i>Browse</i> to specify an export destination in the <i>To archive file</i> field. Note the available options for archive formats.</li><li>In the <i>Browse</i> window, select the <i>Desktop</i> as the destination folder and type <code>My Project</code> as the file name. Click <i>OK</i>.</li><li>In the <i>Export</i> wizard, click <i>Finish</i> to perform the export process.</li><li>View the desktop and notice the new compressed (.zip) file.</li></ol><h4 id="6.1.4.2_Removing_the_project_from_the_workspace">6.1.4.2 Removing the project from the workspace</h4><p>Remove <i>My Project</i> from the workspace:</p><ol><li>Right-click <i>My Project</i> in the <i>Project Explorer</i> and select <b>Delete</b> from the context menu.</li><li>In the <i>Delete Resources</i> pop-up window, make sure to check the</li></ol><p><i>Delete project contents on disk</i> check box. Click <i>OK</i>. Note: If this check box is unchecked, the resource will just be deleted from the Workbench, but it will still exist in the workspace. (Notice <i>My Project</i> is no longer listed in the <i>Project Explorer</i>)</p><h4 id="6.1.4.3_Importing_a_project">6.1.4.3 Importing a project</h4><p>Import <i>My Project</i> from a compressed file:</p><ol><li>Select <b>File &gt; Import...</b> from the workbench menu.</li><li>In the <i>Import</i> wizard, expand <b>General</b>, and then select <b>Existing Projects into Workspace</b>. Click <i>Next</i>.</li><li>Click the <b>Select archive file</b> radio button.</li><li>Click the <i>Browse</i> button.</li><li>In the <i>Browse</i> window, browse to the <i>Desktop</i> and select <b>My Project.zip</b> and click <i>Open</i>.</li></ol>#In the <p><i>Import</i> wizard, check the check box next to <i>My Project</i> and click <i>Finish</i> to perform the import process. (Notice <i>My Project</i> is once again listed in the <i>Project Explorer</i>)</p><h3 id="6.1.5_Conclusion">6.1.5 Conclusion</h3><p>The basic features of the Eclipse workbench have now been demonstrated.</p><ul><li>How to view and customize perspectives.</li><li>How to create a project, folder and files.</li><li>How to manipulate editors and views.</li><li>How to export and import projects.</li></ul><h2 id="6.2_Creating_profiles">6.2 Creating profiles</h2><h2 id="6.3_Creating_models_using_Papyrus">6.3 Creating models using Papyrus</h2><h3 id="6.3.1_Use-case_modeling">6.3.1 Use-case modeling</h3><h3 id="6.3.2_Design_modeling">6.3.2 Design modeling</h3><p>This is a tutorial about general class and object modeling using Papyrus.</p><h4 id="6.3.2.1_Create_a_new_UML_project">6.3.2.1 Create a new UML project</h4><p>Create a new UML modeling project as follows:</p><ol><li>If necessary switch to the <i>Papyrus</i> perspective by clicking on <b>Window &gt; Open Perspective &gt; Other</b>. Then choose the <i>Papyrus</i> perspective. If the <i>Papyrus</i> perspective is already active, click on <b>Window &gt; Reset Perspective...</b> to get back to its default configuration.</li><li>Click <b>File &gt; New &gt; Papyrus Project</b>.</li><li>In the <i>New Papyrus Project</i> wizard, name the project <code>My Design Model</code> and click <i>Next</i>.</li><li>Make sure that the radio button <i>UML</i> is selected and click <i>Next</i>.</li><li>Under the section <i>You can load a template</i>, check the box <i>A UML model with basic primitive types (ModelWithBasicTypes)</i> and click on <i>Finish</i>.</li></ol><h4 id="6.3.2.2_Create_new_packages_to_be_used_for_classes">6.3.2.2 Create new packages to be used for classes</h4><p>Create two packages in the model:</p><ol><li>Right-click on the <i>model</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Package</b> and select the created package in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>Clients</code> in the the field <i>Name</i>.</li><li>Right-click on the <i>model</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Package</b> and select the created package in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>Server</code> in the the field <i>Name</i>.</li></ol><h4 id="6.3.2.3_Create_new_classes">6.3.2.3 Create new classes</h4><p>Create two classes in the <i>Server</i> package. One is called <i>Server1</i> and the other is called <i>DataClass1</i>:</p><ol><li>Right-click on the <i>Server</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Class</b> and select the created class in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>Server1</code> in the the field <i>Name</i>.</li><li>Right-click on the <i>Server</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Class</b> and select the created class in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>DataClass1</code> in the the field <i>Name</i>.</li></ol><p>Create three different client classes in the <i>Clients</i> package:</p><ol><li>Right-click on the <i>Clients</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Class</b> and select the created class in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>Client1</code> in the the field <i>Name</i>.</li><li>Right-click on the <i>Clients</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Class</b> and select the created class in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>Client2</code> in the the field <i>Name</i>.</li><li>Right-click on the <i>Clients</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Class</b> and select the created class in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>ClientRoot</code> in the the field <i>Name</i>.</li></ol><h4 id="6.3.2.4_Create_new_class_diagrams">6.3.2.4 Create new class diagrams</h4><p>Create two class diagrams in the model:</p><ol><li>Right-click on the <i>model</i> package in the <i>Model Explorer</i>, select <b>New Diagram &gt; Create a new Class Diagram</b> and type <code>Packages</code> in the <i>Enter a new diagram name</i> pop-up window.</li><li>Right-click on the <i>model</i> package in the <i>Model Explorer</i>, select <b>New Diagram &gt; Create a new Class Diagram</b> and type <code>Classes</code> in the <i>Enter a new diagram name</i> pop-up window.</li></ol><h4 id="6.3.2.5_Create_new_operations_and_attributes">6.3.2.5 Create new operations and attributes</h4><ol><li>Right-click on the class <i>DataClass1</i> and select <b>New Child &gt; Create a new Property</b> and select the created attribute in the <i>Model Explorer</i>. </li><li>In the <i>Properties</i> view, type <code>Field1</code> in the field <i>Name</i> and by the <i>Type</i> field click on the <img border="0" src="TypeKey.bmp"/> key and select <i>Integer</i> from the <i>UML Primitive Types</i>. This cause the created attribute to be named <i>Field1</i> and to be of type <i>Integer</i>.</li><li>Follow the above pattern to also create the attributes <i>Field2</i> of type <i>Integer</i>, <i>Field3</i> of type <i>String</i>, and <i>Field4</i> of type <i>String</i> on class <i>DataClass1</i>.</li><li>Create the attributes <i>Attribute2</i> of type <i>String</i>, <i>Attribute4</i> of type <i>Integer</i> and <i>Attribute5</i> of type <i>DataClass1</i> on class <i>Client1</i>.</li><li>Create the attribute <i>Attribute3</i> on class <i>Client2</i>.</li><li>Create the attribute <i>Attribute1</i> on class <i>Server1</i>.</li><li>Create the operation <i>service1</i> on class <i>Server1</i> by right-click on on the class <i>Server1</i> and select <b>New Child &gt; Create a new Operation</b> and select the created operation in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view, type <code>service1</code> in the the field <i>Name</i> and by the <i>Owned parameter</i> field click on the <img border="0" src="PlusKey.bmp"/> key.</li><li>In the <i>Create a new parameter</i> pop-up window, type <code>service1return</code> in the <i>Name</i> field, select <i>return</i> from the <i>Direction</i> field drop down list and by the <i>Type</i> field click on the <img border="0" src="TypeKey.bmp"/> key and select <i>Integer</i> from the <i>UML Primitive Types</i>. This causes the return type of the operation to be defined as an integer.</li></ol><h4 id="6.3.2.6_Create_new_relationships_between_classes">6.3.2.6 Create new relationships between classes</h4><p>Create a <i>Dependency</i> relationship between the <i>Clients</i> and the <i>Server</i> packages:</p><ol><li>Open the <i>Diagram Packages</i> diagram by double click on it in the <i>Model Explorer</i></li><li>Drag the <i>Clients</i> package to the class diagram (by click on it and while holding the mouse button down, move the cursor to the editing area in the class diagram editor and release it).</li><li>Drag the <i> Server</i> package to the class diagram.</li><li>Select the <i>Dependency</i> tool from the <i>Edges</i> drawer in the <i>Palette</i>, click on the <i>Clients</i> package and then on the <i>Server</i> package in the class diagram.</li><li>Type <code>Dependency</code> as the name of the relationship.</li></ol><p>Create a <i>Generalization</i> relationship between the classes <i>Client2</i> and <i>Client1</i>, i.e. make <i>Client2</i> a sub-class of <i>Client1</i>:</p><ol><li>Open the <i>Diagram Classes</i> diagram by double click on it in the <i>Model Explorer</i></li><li>Drag the <i>Client1</i> class to the class diagram.</li><li>Drag the <i>Client2</i> class to the class diagram.</li><li>Select the <i>Generalization</i> tool from the <i>Edges</i> drawer in the <i>Palette</i>, click on the <i>Client2</i> class and then on the <i>Client1</i> class in the class diagram.</li></ol><p>Create a <i>Composite</i> relationships between the classes <i>ClientRoot</i> and <i>Client1</i> plus <i>ClientRoot</i> and <i>Client2</i>:</p><ol><li>Continue with the already opened class diagram <i>Diagram Classes</i>.</li><li>Drag the <i>ClientRoot</i> class to the class diagram.</li><li>Select the <i>Association</i> tool from the <i>Edges</i> drawer in the <i>Palette</i>, click on the <i>ClientRoot</i> class and the on the <i>Client1</i> class in the class diagram.</li><li>Select the created association in the class diagram and in the <i>Properties</i> view, rename the association to <code>cr-c1</code>.</li><li>Also in the same <i>Properties</i> view, at the member end, named <i>client1</i>, by the <i>Aggregation</i> field, select <i>composite</i> from the drop down list.</li><li>Select the <i>Association</i> tool from the <i>Edges</i> drawer in the <i>Palette</i>, click on the <i>ClientRoot</i> class and the on the <i>Client2</i> class in the class diagram.</li><li>Select the created association in the class diagram and in the <i>Properties</i> view, rename the association to <code>cr-c2</code>.</li><li>Also in the same <i>Properties</i> view, at the member end, named <i>client2</i>, by the <i>Aggregation</i> field, select <i>composite</i> from the drop down list.</li></ol><h4 id="6.3.2.7_Create_a_new_package_to_be_used_for_objects">6.3.2.7 Create a new package to be used for objects</h4><p>Create a new package in the model:</p><ol><li>Right-click on the <i>model</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new Package</b> and select the created package in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>Objects</code> in the the field <i>Name</i>.</li></ol><h4 id="6.3.2.8_Create_new_objects">6.3.2.8 Create new objects</h4><p>Create objects (instances of classes) in the <i>Objects</i> package:</p><ol><li>Right-click on the <i>Objects</i> package in the <i>Model Explorer</i>, select <b>New Child &gt; Create a new InstanceSpecification</b> and select the created object (InstanceSpecification) in the <i>Model Explorer</i>.</li><li>In the <i>Properties</i> view type <code>clientObj1</code> in the the field <i>Name</i> and by the <i>Classifier</i> field click on the <img border="0" src="PlusKey.bmp"/> key. In the <i>Classifier</i> window that pops up, browse to the <i>Client2</i> class and click on the <img border="0" src="Arrow.bmp"/> key, which specifies the object's class as shown in figure 11.</li></ol><p><center><div class="thumb middle"><div class="thumbinner" style="width:402px;"><a href="ClassifierPopUp.bmp" class="image"><img class="thumbimage" width="400" align="middle" border="0" src="ClassifierPopUp.bmp"/></a><div class="thumbcaption">Figure 11: The Classifier pop up window</div></div></div></center></p><p>Follow the same pattern to create:</p><ol><li>An object called <i>clientObj2</i> in the <i>Objects</i> package based on class <i>Clent2</i>.</li><li>An object called <i>serverObj1</i> in the <i>Objects</i> package based on class <i>Server1</i>.</li></ol><h4 id="6.3.2.9_Create_a_new_class_diagram">6.3.2.9 Create a new class diagram</h4><p>Create a class diagrams in the model to depicts the created objects:</p><ol><li>Right-click on the <i>model</i> package in the <i>Model Explorer</i>, select <b>New Diagram &gt; Create a new Class Diagram</b> and type <code>Objects</code> in the the <i>Enter a new diagram name</i> pop-up window.</li></ol><h4 id="6.3.2.10_Create_new_relationships_between_objects">6.3.2.10 Create new relationships between objects</h4><p>Create a <i>Dependency</i> relationship between the clients and the server objects:</p><ol><li>Open the <i>Diagram Objects</i> diagram by double click on it in the <i>Model Explorer</i></li><li>Drag the <i>clientObj1</i> object to the class diagram (by click on it and while holding the mouse button down, move the cursor to the editing area in the class diagram editor and release it).</li><li>Drag the <i>clientObj2</i> object to the class diagram</li><li>Drag the <i>serverObj1</i> object to the class diagram.</li><li>Select the <i>Dependency</i> tool from the <i>Edges</i> drawer in the <i>Palette</i>, click on the <i>clientObj1</i> object and then on the <i>serverObj1</i> object in the class diagram. Leave the default name on the relationship.</li><li>Also create a <i>Dependency</i> relationship between the <i>clientObj2 and the </i>serverObj1''.</li></ol><h4 id="6.3.2.11_Conclusion">6.3.2.11 Conclusion</h4><p>In this tutorial the following model was created:</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:402px;"><a href="DesignModelEx1.bmp" class="image"><img class="thumbimage" width="400" align="middle" border="0" src="DesignModelEx1.bmp"/></a><div class="thumbcaption">Figure 12: Two packages on top in the model</div></div></div></center></p><p><center><div class="thumb middle"><div class="thumbinner" style="width:402px;"><a href="DesignModelEx2.bmp" class="image"><img class="thumbimage" width="400" align="middle" border="0" src="DesignModelEx2.bmp"/></a><div class="thumbcaption">Figure 13: Relationships between the client classes</div></div></div></center></p><p><b>Note!</b> The inherited attributes depicted in figure 13 on the <i>Client2</i> class.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:402px;"><a href="ObjectDiagram.bmp" class="image"><img class="thumbimage" width="400" align="middle" border="0" src="ObjectDiagram.bmp"/></a><div class="thumbcaption">Figure 14: Objects in the model and their relationships</div></div></div></center></p><h3 id="6.3.3_RT_modeling">6.3.3 RT modeling</h3><h1 id="7_Papyrus">7 Papyrus</h1><p>Papyrus can be used to do</p><ul><li>General UML modeling.</li><li>UML RT modeling, which is described in the section <a href="#6.3.3_RT_modeling">6.3.3_RT_modeling</a> when the UML RT profile is applied.</li><li>SysML modeling when the SysML profile is applied.</li><li>MARTE modeling when the MARTE profile is applied.</li><li>UML profiles, which is described in the section <a href="#7.10_UML_profiling">UMLprofiling</a> .</li></ul><p>In Papyrus, different UML profiles can be applied. When installing Papyrus, as described in section <a href="#3_Installation">Installation</a> , also the UML, UML RT, SysML and MARTE profiles can be added. When creating a new Papyrus project, the type of Papyrus project is selected. Project types to chose from are SysML, Profile and UML.</p><h2 id="7.1_Papyrus_resources_in_the_workspace">7.1 Papyrus resources in the workspace</h2><p>When modeling in Papyrus, three types of resources are stored in the workspace.</p><table><tr><td><p><div class="thumb middle"><div class="thumbinner" style="width:402px;"><a href="ModelProjResourcesFS.bmp" class="image"><img class="thumbimage" width="400" align="middle" border="0" src="ModelProjResourcesFS.bmp"/></a><div class="thumbcaption">Figure 15: Resources in the file system</div></div></div></p></td><td><p><div class="thumb middle"><div class="thumbinner" style="width:202px;"><a href="ModelProjResourcesPE.bmp" class="image"><img class="thumbimage" width="200" align="middle" border="0" src="ModelProjResourcesPE.bmp"/></a><div class="thumbcaption">Figure 16: Resources in the Project Explorer</div></div></div></p></td></tr></table><ul><li><b>.di</b> file persists the status of the workbench, i.e. which diagrams and views are opened, etc.</li><li><b>.notation</b> file persists the information about the diagrams in the model.</li><li><b>.uml</b> file persists the UML model.</li></ul><p>Note! In this case the model is contained in three files. When working in an industrial context, the model may need to be split up into several fragments in order for several designers to work concurrently with the same model. This is described in section <a href="#7.6_Papyrus_in_a_team_environment">Papyrus in a team environment</a> .</p><h2 id="7.2_The_Papyrus_perspective">7.2 The Papyrus perspective</h2><p>When Papyrus is installed a predefined perspective called <i>Papyrus</i> is made available. This is the perspective to use when modeling with Papyrus. The Papyrus perspective can be customized to the user needs and saved as new perspective ( see section <a href="#4.4_Workbench">Workbench</a> ).</p><h3 id="7.2.1_Project_Explorer_view">7.2.1 Project Explorer view</h3><p>The <i>Project Explorer</i> view is used to browse, select and manipulate resources in the workspace. Projects or working sets are the top level in this view. From the <i>Project Explorer's</i> (right click on the white space) context menu, e.g. new projects can be created.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:202px;"><a href="ProjectExpl.bmp" class="image"><img class="thumbimage" width="200" align="middle" border="0" src="ProjectExpl.bmp"/></a><div class="thumbcaption">Figure 17: The Project Explorer</div></div></div></center></p><p>In some views, as in this case, there is a view specific menu (indicated in Figure 13 with a red ring). Here some settings can be applied for the view, e.g. if the top level should be working sets or projects.</p><h3 id="7.2.2_Model_Explorer_view">7.2.2 Model Explorer view</h3><p>In the <i>Model Explorer</i> view, the model that has been opened in the <i>Project Explorer</i>, can be browsed and edited. Model elements can be added by using the context menu of any existing modeling element, including the model package and packages. Diagrams can also be added by using the context menus. Existing diagrams can be opened in an appropriate editor by just double clicking on the diagram in the <i>Model Explorer</i>.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:202px;"><a href="ModelExpl.bmp" class="image"><img class="thumbimage" width="200" align="middle" border="0" src="ModelExpl.bmp"/></a><div class="thumbcaption">Figure 18: The Model Explorer</div></div></div></center></p><h3 id="7.2.3_Editing_view">7.2.3 Editing view</h3><p>The <i>Editing View</i> is in the middle part of the workbench and here opens different types of editors, depending on the type of resource to edit, e.g. if a class diagram is opened, the class diagram editor will be visible in the <i>Editing View</i>.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:402px;"><a href="EditingView.bmp" class="image"><img class="thumbimage" width="400" align="middle" border="0" src="EditingView.bmp"/></a><div class="thumbcaption">Figure 19: The Editing View</div></div></div></center></p><p>How to use editors is described in section <a href="#7.3_Diagram_editing_in_Papyrus">Editors in Papyrus</a>.</p><h3 id="7.2.4_Outline_view">7.2.4 Outline view</h3><p>The <i>Outline View</i> is connected to the <i>Editing View</i> and gives an overview of what is open in the <i>Editing View</i>. The <i>Outline View</i> may be used to pan the <i>Editing View</i> or to select some information that will be highlighted in the <i>Editing View</i>. The shaded area is the area that is visible in the <i>Editing View</i>.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:202px;"><a href="OutlineView.bmp" class="image"><img class="thumbimage" width="200" align="middle" border="0" src="OutlineView.bmp"/></a><div class="thumbcaption">Figure 20: The Outline View</div></div></div></center></p><h3 id="7.2.5_Properties_view">7.2.5 Properties view</h3><p>The <i>Properties view</i> is a stacked view which is located at the bottom of the workbench and shows the properties of a selected modeling element. The modeling element can be selected in the Model Explorer or in a diagram. The properties are categorized under different tabs located to the left in the <i>Properties view</i>.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="PropertiesView.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="PropertiesView.bmp"/></a><div class="thumbcaption">Figure 21: The Properties View</div></div></div></center></p><p>In this view the properties may be viewed and edited, e.g. rename the operation and change the visibility of the operation.</p><h3 id="7.2.6_Model_Validation_view">7.2.6 Model Validation view</h3><p>From the context menu in the <i>Model Explorer</i> it is possible to validate the entire model or parts of it (for more details see section <a href="#7.7_Model_validation">Model validation</a> . All warnings and errors appear in the <i>Model Validation View</i>, which is a stacked view together with the <i>Properties View</i> and the <i>Search View</i> at the bottom of the workbench.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="ModelValidationView.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="ModelValidationView.bmp"/></a><div class="thumbcaption">Figure 22: The Model Validation View</div></div></div></center></p><p>The model validation constraints are customizable and how to work with it is described in section <a href="#7.7_Model_validation">Model validation</a> .</p><h3 id="7.2.7_Search_view">7.2.7 Search view</h3><p>It is possible to do searches on a selected resource in a specific project or in the entire workspace. When the search is finished, the result appears in the <i>Search View</i>. Details about specifying searches is described in the <a href="#7.8_Searching">Searching</a> section.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="SearchView.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="SearchView.bmp"/></a><div class="thumbcaption">Figure 23: The Search View</div></div></div></center></p><p>The example in Figure 23 shows the result of a model search for <i>Class1</i> in the entire workspace.</p><h2 id="7.3_Diagram_editing_in_Papyrus"><div id="EditorsinPapyrus">7.3 Diagram editing in Papyrus</div></h2><p>To edit diagrams different editors are available in Papyrus. They have the same basic look and feel. When double clicking on some diagram in the <i>Model Explorer</i>, the diagram opens in the editing view. An outline view and a tool palette are also opened. Creating a new diagram in the <i>Model Explorer</i> will also open up a diagram editor together with its tool palette and outline view.</p><h3 id="7.3.1_Diagram_editors">7.3.1 Diagram editors</h3><p>When a diagram editor is opened in Papyrus, three views are opened:</p><ul><li>Editing surface</li><li>Palette</li><li>Outline</li></ul><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="DiagramEditorFieldsPointers.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="DiagramEditorFieldsPointers.bmp"/></a><div class="thumbcaption">Figure 24: Parts of a diagram editor (as an example, the class diagram editor is used)</div></div></div></center></p><p>Figure 24 shows the different parts of a diagram editor. In this case the class diagram editor has been chosen as an example. The <i>Editing surface</i> is where the diagram editing is taken place. The <i>Outline view</i> gives an overview of the entire diagram. The blue shaded part in the <i>Outline view</i> shows what is visible in the editing surface. The <i>Palette</i> contains <i>Drawers</i> and in each drawer there are <i>Tools</i> to be used to add different things into the diagram. In Figure 22, the <i>Nodes</i> drawer is closed and the <i>Edges</i> drawer is opened. In the <i>Edges</i> drawer there are <i>Tools</i> to create different types of edges. By clicking on a drawer, it toggles open and close drawer.</p><h3 id="7.3.2_Basic_tool_techniques">7.3.2 Basic tool techniques</h3><p>Diagrams can be created in different places in the model such as they can be owned by model elements like classes or packages. Diagrams can also be placed on top of the model directly under the model package.</p><h4 id="7.3.2.1_Creating_diagrams">7.3.2.1 Creating diagrams</h4><p>To create a diagram, right click on the model element that should be the owner of the diagram and select <b>New Diagram</b> from the context menu. A new level of menu appears, displaying all types of diagrams that are available to create in this place, e.g. Figure 21 shows the available diagram types that can be created directly on top in the model package.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewDiagram.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewDiagram.bmp"/></a><div class="thumbcaption">Figure 25: Available diagram types that can be created directly under the model package</div></div></div></center></p><p><b>Note!</b> In Figure 25, no adaptation of Papyrus has taken place, hence all diagram types according pops up.</p><h4 id="7.3.2.2_Scrolling_and_panning_in_diagrams">7.3.2.2 Scrolling and panning in diagrams</h4><p>Scrolling and panning in diagrams can be done by either:</p><ul><li>Use the outline view and click (hold down) and drag the blue shaded area around, which simultaneously pans the editing surface.</li><li>Use the vertical and horizontal scroll bars in the editing surface.</li></ul><h4 id="7.3.2.3_Creating_an_element_in_a_diagram">7.3.2.3 Creating an element in a diagram</h4><p>Elements can be created in a diagram directly, by using a tool from the palette, e.g. to create a class</p><ol><li>Open a class diagram</li><li>Open the nodes drawer</li><li>Click on the class tool</li><li>Click somewhere in the editing surface</li><li>Name the class</li></ol><p>If an element already exists in the model, just click on (hold down) the element in the <i>Model Explorer</i> and drag it to the editing surface. When releasing the mouse key, the modeling element appears in the diagram.</p><h4 id="7.3.2.4_Delete_and_hide">7.3.2.4 Delete and hide</h4><p>In a diagram, elements can be deleted or hided.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:202px;"><a href="ElementContextMenuDiaDelHide.bmp" class="image"><img class="thumbimage" width="200" align="middle" border="0" src="ElementContextMenuDiaDelHide.bmp"/></a><div class="thumbcaption">Figure 26: Context menu of an element in a diagram</div></div></div></center></p><p>Right click on an element in a diagram and do</p><ul><li><b>Delete Selected Element</b> will delete the element from the entire model and also from all diagrams where it was present.</li><li><b>Hide Selected Element</b> will hide the element just in this diagram.</li></ul><p><b>Note!</b> These menu items have short cuts, i.e. instead of using the context menu, just select the element in the diagram and use the <b>Delete</b> or <b>Shift-Delete</b> keys</p><h4 id="7.3.2.5_Formating_and_validating_diagrams">7.3.2.5 Formating and validating diagrams</h4><p>Diagrams can be adjusted and graphically edited to get a nicer look also using the element context menu. From the same context menu it is also possible to validate the model or specific parts of the model.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:302px;"><a href="ElementContextMenuDiaFormat.bmp" class="image"><img class="thumbimage" width="300" align="middle" border="0" src="ElementContextMenuDiaFormat.bmp"/></a><div class="thumbcaption">Figure 27: Example of the Format sub context menu</div></div></div></center></p><p>In Figure 27 several menu items are shown, e.g.:</p><ul><li><b>Validation</b> to validate the model partly or fully</li><li><b>Format</b> to do some advanced formating of the diagram like adjustments, routing, etc. as shown in the sub context menu in Figure 25</li><li><b>Filter</b> to select/unselect parts of symbols that should be visible or not</li></ul><h2 id="7.4_UML_modeling"><div id="UMLmodeling">7.4 UML modeling</div></h2><p>With Papyrus, UML models can be created. This is done using different types of diagrams. Modeling elements can be created in these diagrams or directly in the <i>Model Explorer</i>. Diagrams are created in the <i>Model Explorer</i> and when doing so a diagram editor together with its tool palette and outline view are also opened. Section <a href="#7.3_Diagram_editing_in_Papyrus">Diagram editing in Papyrus</a> describes how to work with diagram editors.</p><p>The most common modeling elements are:</p><ul><li>Package</li><li>Use-case</li><li>Actor</li><li>Class</li><li>Object</li></ul><h3 id="7.4.1_Package">7.4.1 Package</h3><p>A <i>package</i> is a general UML grouping element, comparable to a folder in Windows or a directory in Unix. It is used to bring order in the model. A <i>package</i> may have a semantical meaning (e.g. representing a subsystem) and then a UML stereotype, defined in a applied UML Profile, may be added to it (e.g. &lt;&lt; subsystem &gt;&gt;). To create a new <i>package</i>, right click on the owning element, e.g. the model package and from the context menu select <b>New Child &gt; Create a new Package</b></p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewPackage.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewPackage.bmp"/></a><div class="thumbcaption">Figure 28: Create a new Package</div></div></div></center></p><h3 id="7.4.2_Use-case">7.4.2 Use-case</h3><p>A <i>use-case</i> is a functionality in the system. A <i>use-case</i> is a model of the dialogue between actors and the system. It should return a result of measurable value to at least one actor. A <i>use-case</i> is initiated by an actor to invoke a certain functionality in the system.
+A <i>use-case</i> is a complete and meaningful flow of events.
+Taken together, all <i>use-cases</i> constitute all possible ways of using the system.</p><p>To create a new <i>use-case</i>, right click on the owning element, e.g. a package and from the context menu select <b>New Child &gt; Create a new UseCase</b></p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewUseCase.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewUseCase.bmp"/></a><div class="thumbcaption">Figure 29: Create a new use-case</div></div></div></center></p><h3 id="7.4.3_Actor">7.4.3 Actor</h3><p>An <i>actor</i> is something external to the system, but interacts with it. An <i>actor</i> may be a human being or another system. It may be active or passive. An <i>actor</i> interacts (active <i>actor</i>) or receive (passive <i>actor</i>) information from one or several use-cases.</p><p>To create a new <i>actor</i>, right click on the owning element, e.g. a package and from the context menu select <b>New Child &gt; Create a new Actor</b></p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewActor.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewActor.bmp"/></a><div class="thumbcaption">Figure 30: Create a new actor</div></div></div></center></p><h3 id="7.4.4_Class">7.4.4 Class</h3><p>A <i>class</i> is an extensible template for creating objects, providing initial values for state (member variables, attributes) and implementations of behavior (member functions, methods, operations). </p><p>Collectively attributes define the structure of a <i>class</i>. A class may have any number of attributes or none. Attributes are typically implemented as variables. An attribute has a type, which tells us what kind of attribute it is. Typical types of attributes are integer, Boolean, real, and enumeration. These types are called primitive types. More complex types are defined by other <i>classes</i>.</p><p>Collectively operations define the behavior of the <i>class</i>. A <i>class</i> may have any number of operations or none. Operations are implemented as functions or procedures.</p><p>To create a new <i>class</i>, right click on the owning element, e.g. a package and from the context menu select <b>New Child &gt; Create a new Class</b></p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewClass.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewClass.bmp"/></a><div class="thumbcaption">Figure 31: Create a new class</div></div></div></center></p><h4 id="7.4.4.1_Attributes_on_classes">7.4.4.1 Attributes on classes</h4><p>When a <i>class</i> is created, <i>attributes</i> can be added to it by using the context menu of the <i>class</i>. To create a new <i>attribute</i> on the a <i>class</i> select <b>New Child &gt; Create a new Property</b> from its context menu.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewAttribute.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewAttribute.bmp"/></a><div class="thumbcaption">Figure 32: Create a new attribute</div></div></div></center></p><p>The visibility, type and default value of the attribute are set in the properties view when the attribute is selected.</p><h4 id="7.4.4.2_Operations_on_classes">7.4.4.2 Operations on classes</h4><p>When a <i>class</i> is created, <i>operations</i> can be added to it by using the context menu of the <i>class</i>. To create a new <i>operation</i> on the a <i>class</i> select <b>New Child &gt; Create a new Operation</b> from its context menu.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewOperation.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewOperation.bmp"/></a><div class="thumbcaption">Figure 33: Create a new operation</div></div></div></center></p><p>The visibility, arguments and return type of the operation are set in the properties view when the operation is selected.</p><p>Regarding the arguments and return type of the an operation, select the <img border="0" src="PlusKey.bmp"/> key by the <i>Owned parameter</i> field.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="ClassOp1.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="ClassOp1.bmp"/></a><div class="thumbcaption">Figure 34: Create a new argument</div></div></div></center></p><p>Then the following window pops up and from the drop list in the <i>Direction</i> field, select the direction of the argument. In the <i>Name</i> field the name of the argument is written and the type is defined in the <i>Type</i> field.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="ClassOp2.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="ClassOp2.bmp"/></a><div class="thumbcaption">Figure 35: Select the argument´s direction</div></div></div></center></p><p>The direction <i>return</i> defines the return type of the operation. Only one argument can have the return direction.</p><h3 id="7.4.5_Object">7.4.5 Object</h3><p>An <i>object</i> is an instance of a class. In UML it is called and <i>InstanceSpecification</i>, which is a more general term since it can be used for instances of other classifiers than classes. </p><p>To create a new <i>object</i>, right click on the owning element, e.g. a package and from the context menu select <b>New Child &gt; Create a new InstanceSpecification</b></p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="NewObject.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="NewObject.bmp"/></a><div class="thumbcaption">Figure 36: Create a new object</div></div></div></center></p><p>The class to be instanciated is selected by clicking on the <img border="0" src="PlusKey.bmp"/> key by the <i>Classifier</i> field in the <i>Properties</i> view of the <i>InstanceSpecification</i>. This will open the <i>Classifier</i> pop-up window (figure 37), where the class to be used is selected.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="ClassifierPopup.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="ClassifierPopup.bmp"/></a><div class="thumbcaption">Figure 37: Classifier pop-up window</div></div></div></center></p><h3 id="7.4.6_Relationships">7.4.6 Relationships</h3><p>There are different types of relationships that can be used in diagrams, hence in the model between different modeling elements.</p><pre> <div class="thumb middle"><div class="thumbinner" style="width:302px;"><a href="Relationships.bmp" class="image"><img class="thumbimage" width="300" align="middle" border="0" src="Relationships.bmp"/></a></div></div>
+</pre><p>Navigability can be unidirectional or bidirectional for <i>Association</i>, <i>Aggregation</i> and <i>Composition</i>.</p><p><i>Association</i> specifies peer-to-peer relationships between model elements, e.g. if a Class-x has an attribute of type Class-y, it can be viewed in a class diagram as and <i>Association</i> between Class-x and Class-y.</p><p><i>Aggregation</i> is used to model a whole/part relationship between model elements. The part element can exist without the whole. <i>Aggregation</i> causes the generated code to contain the aggregate either by reference or by value, depending on the details of the relationship. E.g. to model an aggregation, the aggregate (Department) has an aggregation association to its constituent parts (Employee). A hollow diamond is attached to the end of an association path on the side of the aggregate (the whole) to indicate aggregation.</p><p><i>Composition</i> is an aggregation with strong ownership, i.e. when the container is destroyed, all of its composite objects are destroyed as well.</p><p><i>Dependency</i> is a relationship in which one model element uses another. <i>Dependency</i> may exist between classes if a message is sent from one class to the other or if one class mentions the other as a parameter to an operation. <i>Dependency</i> may exist between packages if one package is dependent on another.</p><p>A <i>Dependency</i> relationship causes a class to be generated with inclusions or references to another class.</p><p>A <i>Generalization</i> relationship causes a class to be generated as a subclass of another class.</p><p>The <i>Realizes</i> relationship specifies that, e.g. an implementation realizes a specification. The <i>Realizes</i> relationship does not affect the code.</p><p>To create a relationship between two modeling elements, use the tool palette in the diagram editor, e.g. to create an <i>Association</i> between two classes, select the <i>Association</i> tool in the tool palette, click on the source element and then click on the destination element as described in figure 38.</p><p><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="ClassDiagramEditorNewAss.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="ClassDiagramEditorNewAss.bmp"/></a><div class="thumbcaption">Figure 38: Create a new Association</div></div></div></p><p>In the <i>Edges</i> drawer in the tool palette, all available relationships are shown. To create a <i>Generalization</i> relationship, select the <i>Generalization</i> tool from the tool palette and follow the same procedure as described.</p><p>The <i>Aggregation</i> and the <i>Composition</i> relationships are a special kind of an <i>Association</i> relationship. To create any of these, an <i>Association</i> relationship needs first to be created. Then select the created <i>Association</i> and in the properties view, change the <i>Aggregation</i> field at the appropriate end of the <i>Association</i> to <i>shared</i>(if an <i>Aggregation</i> is desired) or to <i>composite</i> (if a <i>Composition</i> is desired). Figure 39 shows how to do it.</p><p><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="ClassDiagramEditorNewAgg.bmp" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="ClassDiagramEditorNewAgg.bmp"/></a><div class="thumbcaption">Figure 39: Create a new Association</div></div></div></p><p>When the <i>Association</i> is created, the <i>Aggregation</i> field is set to <i>none</i> by default. When doing the change at the destination end (as in figure 35), the diamond shows up at the source end of the relationship.</p><h3 id="7.4.7_Diagrams">7.4.7 Diagrams</h3><p>UML has many different types of diagrams to capture all different aspects of a system. To capture and refine requirements, diagrams related to use-cases are used. To specify the architecture and design, diagrams related to classes and packages are used. To specify the implementation, state and activity diagrams are used, etc.</p><p>The different diagrams in UML 2 are shown in figure 40 and here they are structured after diagram type. In the following of this section they are organized how they are used. </p><p><center><div class="thumb middle"><div class="thumbinner" style="width:502px;"><a href="UMLdiagrams.png" class="image"><img class="thumbimage" width="500" align="middle" border="0" src="UMLdiagrams.png"/></a><div class="thumbcaption">Figure 40: UMl 2 diagram types</div></div></div></center></p><p><b>Note!</b> In Papyrus class diagrams are also used as object diagrams.</p><h4 id="7.4.7.1_Diagrams_related_to_use-cases">7.4.7.1 Diagrams related to use-cases</h4><p>When working with requirement capture and refinement, use-case modeling is used and any or all of the following diagrams can be used:</p><ul><li>Use-case diagram</li><li>Activity diagram</li><li>Interaction diagram<ul><li>Sequence diagram</li><li>Collaboration diagram</li></ul></li></ul><p>A <i>use-case diagram</i> describe how different <i>Actors</i> use different functionality of the system. Implicitly, it also define the system boundary, since it shows what should be performed by the system and what exists outside the system. The elements used in <i>use-case diagrams</i> are:</p><ul><li><b>Actors</b> interact with, but are outside the system.</li><li><b>Use-cases</b> are some functionality that are performed by the system.</li><li><b>Relationships</b> between elements.</li></ul><p>A diagram may depict all or some of the use-cases of a system.</p><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="UCdiagram.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="UCdiagram.bmp"/></a><div class="thumbcaption">Figure 41: Use-case diagram</div></div></div></center></p><p>A <i>use-case</i> interacts with an <i>actor</i> and perform something useful for that <i>actor</i>. A <i>use-case</i> exist because of its main flow, but all odd cases and error situations have to be specified. A <i>use-case</i> has a black box and a white box view. The black box view is preferably described in plain text or by using activity diagrams. The white box view is described by one or several sequence diagrams.</p><p>All <i>use-cases</i> together span the entire functionality of the system. <i>Actors</i>, <i>use-cases</i> and <i>use-case diagrams</i> are owned by packages (general UML packages or model packages).</p><p>To create a <i>use-case diagram</i>, right click on the owning package and select <b>New Diagram &gt; Create a new UseCase Diagram</b> from its context menu.</p><p>An <i>activity diagram</i> is a kind of behavioral diagram and shows flow of control from activity to activity. It is used to specify a use-case black box view. It can also be used to specify a flow chart for a class operation.</p><p>The main elements in an <i>activity diagram</i> are:</p><ul><li>Initial and end states</li><li>Activities</li><li>States</li><li>Transitions</li><li>Synchronization lines</li><li>Decisions</li><li>Partitions</li></ul><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="ActivityDiagram.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="ActivityDiagram.bmp"/></a><div class="thumbcaption">Figure 42: Activity diagram</div></div></div></center></p><p>The <i>activity diagram</i> is preferably used to specify the black box behavior of a use-case instead of using plain text. It may also be used to specify a flow chart for a class operation.<i>Activity diagrams</i> are owned by use-cases or classes. </p><p>To create an <i>activity diagram</i>, right click on the owning use-case or class and select <b>New Diagram &gt; Create a new Activity Diagram</b> from its context menu.</p><p>Interaction diagrams are used to specify how different modeling elements interacts. Here two types are described, the <i>sequence diagram</i> and the <i>communication diagram</i>.</p><p>A <i>sequence diagram</i> describes the interactions between elements as a time ordered set of messages. One or several <i>sequence diagrams</i> are used to specify the white box view of a use-case.</p><p>Sequences involving collaborating elementsThe main elements in a <i>sequence diagram</i> are:</p><ul><li>Class instances (objects)</li><li>Life lines</li><li>Messages</li><li>Combined fragments</li></ul><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="SequenceDiagram.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="SequenceDiagram.bmp"/></a><div class="thumbcaption">Figure 43: Sequence diagram</div></div></div></center></p><p>The example (Figure 43) describes Interaction1, two objects (instances of Class1 and Class2) are created and interacts by messages. The time goes down along the life lines. In the bottom, there is a combined fragment of type "Ref" which is a reference to another interaction, Interaction2, meaning that the sequences in that interaction are executed.There are a lot of combined fragment types, e.g. type "Loop" specifies a loop, type "Alt" specifies alternatives, etc. All combined fragment types are defined in <a href="http://www.omg.org/spec/UML/2.4.1/">Unified Modeling Language (UML) version 2.4.1</a></p><p><i>Sequence diagrams</i> are owned by use-cases or communication diagrams (see below). </p><p>To create a <i>sequence diagram</i>, right click on the owning use-case or communication diagram and select <b>New Diagram &gt; Create a new Sequence Diagram</b> from its context menu.</p><p><i>Communication diagrams</i> show the lines of communication among a set of objects to accomplish a specific purpose. They act as the framework for sequence diagrams and define access paths between elements. i.e. <i>communication diagrams</i> are used to specify a use-case's white box communication channels between elements in the system.</p><p>The main elements in a <i>collaboration diagram</i> are:</p><ul><li>Class instances (objects)</li><li>Access paths</li><li>Messages</li></ul><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="CommunicationDiagram.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="CommunicationDiagram.bmp"/></a><div class="thumbcaption">Figure 44: Communication diagram</div></div></div></center></p><p>The example (Figure 44) describes access paths between objects and which messages are passed in these paths.<i>Communication diagrams</i> are owned by use-cases. </p><p>To create a <i>communication diagram</i>, right click on the owning use-case and select <b>New Diagram &gt; Create a new Communication Diagram</b> from its context menu.</p><h4 id="7.4.7.2_Diagrams_related_to_classes">7.4.7.2 Diagrams related to classes</h4><p>When modeling classes, any or all of the following diagrams may be used:</p><ul><li><i>Class diagrams</i></li><li><i>Composite structure diagrams</i></li><li><i>State diagrams</i></li></ul><p>As described above, activity diagrams may also be used to specify a flowchart for a class operation.</p><p><i>Class diagrams</i> depict static views of the system. A <i>class diagram</i> may represent all or part of the class structure of a system. Typically there are many <i>class diagrams</i> in a model. Usually one or many <i>class diagrams</i> are used to specify the inheritance structure in the system. <i>Class diagrams</i> may also be used to define dependency rules between packages.</p><p>The main elements in a <i>class diagram</i> are:</p><ul><li>Packages</li><li>Classes</li><li>Relationships</li></ul><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="ClassDiagram.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="ClassDiagram.bmp"/></a><div class="thumbcaption">Figure 45: Class diagram</div></div></div></center></p><p>The example (Figure 45) shows a <i>class diagram</i> used to specify an inheritance structure between classes. Note: The <i>Generalization</i> relationship and the indication of the inherited attributes in Class1 and Class2.</p><p><i>Class diagrams</i> are owned by ordinary UML packages or model packages. </p><p>To create a <i>class diagram</i>, right click on the owning package and select <b>New Diagram &gt; Create a new Class Diagram</b> from its context menu.</p><p>The <i>composite structure diagram</i> specifies structure classes contents, i.e. how the class uses <i>roles</i> (instances from other classes) and how they are connected to fulfill its responsibility.</p><p>The main elements in a <i>composite structure diagram</i> are:</p><ul><li>Contained roles (instances of classes)</li><li>Ports (interface objects)</li><li>Connectors</li></ul><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="CompositeStructure.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="CompositeStructure.bmp"/></a><div class="thumbcaption">Figure 46: Composite structure diagram</div></div></div></center></p><p>The example (Figure 46) shows a <i>composite structure diagram</i> used to specify the structural contents of Class4. Note: Class4 uses one instance (class2) of Class2 and one instance (class3) of Class3 and they are connected between Class2/Port1 and Class3/Port2.</p><p><i>Composite structure diagrams</i> are owned by structured classes. </p><p>To create a <i>composite structure diagram</i>, right click on the owning class and select <b>New Diagram &gt; Create a new Composite Structure Diagram</b> from its context menu.</p><p>The <i>state machine diagram</i> specifies the behavior of a class. It is used when the class is state rich, i.e. has an event driven behavior. If the class has no states, activity diagrams can be used.</p><p>The main elements in a <i>state machine diagram</i> are:</p><ul><li>States</li><li>Transitions</li><li>Effect code</li><li>Triggering events</li><li>Pseudo states, e.g. initial, final and choice points</li></ul><p><center><div class="thumb middle"><div class="thumbinner" style="width:602px;"><a href="StateDiagram.bmp" class="image"><img class="thumbimage" width="600" align="middle" border="0" src="StateDiagram.bmp"/></a><div class="thumbcaption">Figure 47: State machine diagram</div></div></div></center></p><p>The example (Figure 47) shows a <i>state machine diagram</i> that has an initial pseudo state, three states and transitions between them. On each transition (except for initialize), a <i>triggering event</i> is specified, which defines the event that makes the transition to be taken. Transitions and states may have effect code, which specify detailed behavior to be executed when an associated transition is taken.</p><p><i>State machine diagrams</i> are owned by classes. </p><p>To create a <i>state machine diagram</i>, right click on the owning class and select <b>New Diagram &gt; Create a new State Machine Diagram</b> from its context menu.</p><h2 id="7.5_UML_RT_modeling"><div id="UMLRTmodeling">7.5 UML RT modeling</div></h2><p>When creating models UML is used. Since UML is general-purpose modeling language in the field of software engineering, it is possible to adapt UML to specific domains. This is done by creating and applying UML profiles. When using UML for RT modeling with Capsules and Protocols, the UML RT profile is applied. When a profile is applied we can say that Papyrus has been specialized. There is a specific use-case in Papyrus to develop UML profiles and when doing so a domain specific modeling language is defined. This use-case is described in section <a href="#7.10_UML_profiling">UML profiling</a> in this user guide.</p><h3 id="7.5.1_Additional_modeling_elements">7.5.1 Additional modeling elements</h3><h4 id="7.5.1.1_Capsule_class">7.5.1.1 Capsule class</h4><h4 id="7.5.1.2_Protocol_class">7.5.1.2 Protocol class</h4><h3 id="7.5.2_Using_C.2B.2B_in_a_model">7.5.2 Using C++ in a model</h3><h3 id="7.5.3_C.2B.2B_service_library">7.5.3 C++ service library</h3><h4 id="7.5.3.1_Sending_messages">7.5.3.1 Sending messages</h4><h3 id="7.5.4_Transformation_from_model_to_code">7.5.4 Transformation from model to code</h3><h3 id="7.5.5_Edit_the_generated_code">7.5.5 Edit the generated code</h3><h3 id="7.5.6_Compiling_and_linking_the_generated_code">7.5.6 Compiling and linking the generated code</h3><h3 id="7.5.7_Using_external_libraries">7.5.7 Using external libraries</h3><h3 id="7.5.8_Running_the_system">7.5.8 Running the system</h3><h2 id="7.6_Papyrus_in_a_team_environment"><div id="Papyrusinateamenvironment">7.6 Papyrus in a team environment</div></h2><h3 id="7.6.1_Model_fragmentation">7.6.1 Model fragmentation</h3><h3 id="7.6.2_Source_configuration_management">7.6.2 Source configuration management</h3><h3 id="7.6.3_Compare_and_Merge">7.6.3 Compare and Merge</h3><h2 id="7.7_Model_validation"><div id="Modelvalidation">7.7 Model validation</div></h2><h3 id="7.7.1_Object_Constrain_Language_.28OCL.29">7.7.1 Object Constrain Language (OCL)</h3><h3 id="7.7.2_Defining_constraints_using_OCL">7.7.2 Defining constraints using OCL</h3><h2 id="7.8_Searching"><div id="Searching">7.8 Searching</div></h2><h2 id="7.9_Sample_models">7.9 Sample models</h2><p>In the Papyrus installation directory There are several sample models</p><h3 id="7.9.1_Class_model_with_inheritance">7.9.1 Class model with inheritance</h3><h3 id="7.9.2_Send_and_receive_data">7.9.2 Send and receive data</h3><h3 id="7.9.3_Interprocess_communication">7.9.3 Interprocess communication</h3><h2 id="7.10_UML_profiling"><div id="UMLprofiling">7.10 UML profiling</div></h2><p>TBD include the information in the user guide "About UML profiling"</p><h1 id="8_Support">8 Support</h1><p>To report bugs, suggest improvements, view the status of the Papyrus project, discuss different Papyrus subjects, etc. please use the following references:</p><ul><li><a href="http://www.eclipse.org/papyrus/">The Papyrus project home page</a></li><li><a href="http://www.eclipse.org/forums/index.php/f/121/">The Papyrus discussion forum</a></li><li>Proposals for Papyrus improvements</li><li><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Modeling&amp;product=MDT.Papyrus&amp;component=Core&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=exact&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse%20same%20sort%20as%20last%20time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=">Bugzilla_to_report_bugs</a></li></ul><h1 id="9_References">9 References</h1><ol><li><a href="http://www.eclipse.org/">eclipse.org</a></li><li><a href="http://www.eclipse.org/modeling/emf/">EMF model</a></li><li><a href="http://www.eclipse.org/downloads/">Eclipse download page</a></li><li><a href="http://www.omg.org/spec/UML/2.4.1/">Unified Modeling Language (UML) version 2.4.1</a></li><li><a href="http://www.omg.org/spec/SysML/">System Modeling Language</a></li><li><a href="http://www.omg.org/omgmarte/Specification.htm/">Modeling and Analysis of Real-Time and Embedded systems</a></li></ol></body></html> \ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.mediawiki b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.mediawiki
index e8d6e14a9b0..5b96dc2f7b0 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.mediawiki
@@ -1,9 +1,9 @@
= 1 Overview =
-Papyrus is an environment for editing any kind of [http://www.eclipse.org/modeling/emf/ EMF model], particularly supporting UML 2 ([http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1] ) and related modeling languages such as SysML ([http://www.omg.org/spec/SysML/ System Modeling Language] ) and MARTE ([http://www.omg.org/omgmarte/Specification.htm/ Modeling and Analysis of Real-Time and Embedded systems] ). Papyrus also offers very advanced support of UML profiles that enables users to define editors for DSLs (Domain Specific Languages) based on the UML 2 standard.
+Papyrus is an environment for editing any kind of [http://www.eclipse.org/modeling/emf/ EMF model], particularly supporting UML 2 ([http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1] ) and related modeling languages such as SysML ([http://www.omg.org/spec/SysML/ System Modeling Language] ) and MARTE ([http://www.omg.org/omgmarte/Specification.htm/ Modeling and Analysis of Real-Time and Embedded systems] ). Papyrus also offers very advanced support for UML profiles that enables users to define editors for DSLs (Domain Specific Languages) based on the UML 2 standard.
-Papyrus is a collection of plug-ins and features on top of the Eclipse framework. For more information about Eclipse, please go to the Eclipse web site [http://www.eclipse.org/ eclipse.org]. Some of the terminology used in this Papyrus user guide are basic Eclipse concepts and briefly described here. To get more information about the Eclipse concepts, please visit the ''Workbench User Guide'' by selecting '''Help &gt; Help Contents''' from within Eclipse.
+Papyrus is a collection of plug-ins and features on top of the Eclipse Modeling Framework. For more information about Eclipse, please go to the Eclipse web site [http://www.eclipse.org/ eclipse.org]. Some of the terminology used in this Papyrus user guide are basic Eclipse concepts and briefly described here. To get more information about the Eclipse concepts, please visit the ''Workbench User Guide'' by selecting '''Help &gt; Help Contents''' from within Eclipse.
== 1.1 Table of Contents ==
@@ -11,60 +11,61 @@ __TOC__
= 2 Introduction =
-Papyrus is built on the extensible Eclipse framework and is an implementation of the OMG (Object Management Group) specification [http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1]. Papyrus is a comprehensive UML modeling environment, where many diagrams can be used to view different aspects of a system. Behind all diagrams, there is a model where all modeling elements, used in these diagrams, are kept. The model keeps the consistency between all diagrams.
+Papyrus is built on the extensible Eclipse framework and is an implementation of the OMG (Object Management Group) specification [http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1]. Papyrus is a comprehensive UML modeling environment, where many diagrams can be used to view different aspects of a system. Behind all diagrams, there is a model where all modeling elements, used in these diagrams, are kept. The model keeps the consistency between the diagrams.
-UML diagrams can help system architects and developers understand, collaborate on and develop an application. Architects and managers can use diagrams to visualize an entire system or project and separate applications into smaller components for development.
+UML diagrams can help system architects and developers understand, collaborate on and develop a system. Architects and managers can use diagrams to visualize an entire system or project and separate systems into smaller components for development.
-System developers can use diagrams to specify, visualize, and document applications, which can increase efficiency and improve their application design.
+System developers can use diagrams to specify, visualize, and document systems, which can increase efficiency and improve their system design. Also code can be generated from UML models.
-Since UML is very general, it is possible to adapt UML to specific domains. This is done by creating and applying UML profiles. Papyrus is a complete UML modeling environment and can also be used to develop UML profiles.
+Since UML is general-purpose modeling language in the field of software engineering, it is possible to adapt UML to specific domains. This is done by creating and applying UML profiles. Papyrus is a complete UML modeling environment, which also can be used to develop UML profiles.
== 2.1 Legend ==
-In this user guide, bold text is used for menu selections, e.g. '''Help &gt; Welcome''' means form the '''Help''' item on the main menu, select the '''Welcome''' item.
+In this user guide, bold text is used for menu selections, e.g. '''Help &gt; Welcome''' means from the '''Help''' item on the main menu, select the '''Welcome''' item.
-A context menu is the pop up menu that appears when right clicking on something, e.g. right click on a class select '''New Child &gt; Create a new Operation''', will create a new operation on the class, using the class' context menu.
+A context menu is the pop-up menu that appears when right clicking on something, e.g. right click on a class select '''New Child &gt; Create a new Operation''', will create a new operation on the class, using the class' context menu.
-When a text should be typed in, it is indicated by inline code, e.g. <code>this text should be typed in</code>.
+When text should be typed in, it is indicated by inline code, e.g. <code>this text should be typed in</code>.
-Fields in wizards, pop up windows, different editors, radio buttons and check boxes are indicated by italic text, e.g. set the field ''Name'' to <code>MyClass</code>.
+Fields in wizards, pop-up windows, different editors, radio buttons and check boxes are indicated by italic text, e.g. set the field ''Name'' to <code>MyClass</code>.
= <div id="Installation">3 Installation</div> =
-It is a several step process to install Papyrus and its features. The Eclipse Standard must first be installed and when that is done, Papyrus is installed on top of Eclipse Standard.
+It is a several step process to install Papyrus and its optional components. The ''Eclipse Standard'' must first be installed and when that is done, Papyrus is installed on top of ''Eclipse Standard''.
== 3.1 Install Eclipse Standard ==
-Eclipse Standard is installed from the [http://www.eclipse.org/downloads/ Eclipse download page]. On the download page select ''Eclipse Standard ....'' to install. Follow the install wizard to complete the installation.
+''Eclipse Standard'' is installed from the [http://www.eclipse.org/downloads/ Eclipse download page]. On the download page select ''Eclipse Standard <version number>'' to install. Follow the install wizard to complete the installation.
== 3.2 Install basic Papyrus ==
-When Eclipse Standard is installed, go to '''Help &gt; Install New Software''' and type in <code>http://download.eclipse.org/releases/kepler/</code> in the field named ''Work with:''.
+When ''Eclipse Standard'' is installed, go to '''Help &gt; Install New Software''' and type in <code>http://download.eclipse.org/releases/kepler/</code> in the field named ''Work with:''.
'''Note!''' When this user guide was written, the Kepler release of Eclipse was the latest. Select the latest official Eclipse release.
-'''Note!''' In some industrial environments, a proxy has to be used instead of this type of direct URL to the Eclipse web-site.
+'''Note!''' In some industrial environments, a proxy has to be used instead of this type of direct URL to the Eclipse web-site. To configure Eclipse to use a proxy is done under '''Windows &gt; Preferences''' and '''General &gt; Network Connections'''
+
<center>[[File:InstallNewSoftware.bmp|thumb|center|thumb|564px|Figure 1: Install New Software wizard]]</center>
In the ''Name'' column of the wizard, scroll down to ''Modeling'' and expand to the next level. Under ''Modeling'', select ''Papyrus UML'' and follow the installation wizard to complete the installation.
When Eclipse is restarted, the environment is now ready for UML modeling.
-== 3.3 Additional installation for Papyrus UML RT modeling ==
+== 3.3 Additional installation steps ==
-After installation of the basic Papyrus feature, go to '''Help &gt; Install Papyrus Additional Components'''. In the wizard that pops up, select the needed additional Papyrus components. To be able to do UML RT modeling, the ''Real Time'' component is needed. It is also recommended to install the ''Diagram Stylesheets'' and ''Papyrus Compare'' components. Follow the installation wizard to complete the installation.
+After installation of the basic Papyrus feature, go to '''Help &gt; Install Papyrus Additional Components'''. In the wizard that pops up, select the needed additional Papyrus components, e.g. to be able to do UML RT modeling, the ''Real Time'' component is needed. It is also recommended to install the ''Diagram Stylesheets'' and ''Papyrus Compare'' components. Follow the installation wizard to complete the installation.
<center>[[File:InstallPapyrusComp.bmp|thumb|center|thumb|437px|Figure 2: The Install Papyrus Additional Components wizard]]</center>
= 4 Eclipse =
-Since Papyrus is built on the Eclipse framework, most of its look and feel is inherited from Eclipse.
+Papyrus is built on the Eclipse framework, so most of its look and feel is inherited from Eclipse.
The Eclipse framework has a plug-in architecture, where plug-ins can be grouped into features. Features and plug-ins can be added to an existing Eclipse installation.
== 4.1 Architecture ==
-The plug-in architecture applies also for all subsystems. A plug-in is the smallest unit of Eclipse Platform functionality that can be developed and delivered separately. Usually, a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform’s functionality is located in plug-ins. Plug-ins can be grouped into features.
+The plug-in architecture applies also for all subsystems. A plug-in is the smallest unit of Eclipse Platform functionality that can be developed and delivered separately. Usually, a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform's functionality is located in plug-ins. Plug-ins can be grouped into features.
<center>[[File:EclipseArchitecture.bmp|center|thumb|500px|Figure 3: The Eclipse architecture]]</center>
@@ -72,19 +73,19 @@ Plug-ins are coded in Java. A typical plug-in consists of Java code in a JAR (Ja
Each plug-in has a manifest file declaring its interconnections to other plug-ins. The interconnection model is simple: a plug-in declares any number of named extension points, and any number of extensions to one or more extension points in other plug-ins.
-<center>[[File:Feature-Plug-in.bmp|center|thumb|100px|Figure 4: Plug-ins and Features]]</center>
+<center>[[File:Feature-Plug-in.bmp|center|thumb|290px|Figure 4: Plug-ins and Features]]</center>
== <div id="Workspace">4.2 Workspace</div> ==
The workspace is located in the file-system and is the place where Eclipse resources (files, folders and projects) are stored. When Eclipse is started, a pop-up window appears, where a workspace should be selected. One instance of Eclipse is connected to one workspace.
-<center>[[File:WorkspacePopup.bmp|center|thumb|400px|Figure 5: Pop-up window to select the workspace]]</center>
+<center>[[File:WorkspacePopup.bmp|center|thumb|593px|Figure 5: Pop-up window to select the workspace]]</center>
In the file system all resources are stored in the selected workspace and in the same hierarchical structure as in the ''Project Explorer''.
== 4.3 Resources ==
-Resources is a collective term for the projects, folders, and files that exist in the workbench. The resources are stored in the workspace, where the projects are on the first level. Inside a project, there are files and folders in the same hierarchical structure as in the ''Project Explorer'' and ''Model Explorer''.
+Resources are a collective term for the projects, folders, and files that exist in the workbench. The resources are stored in the workspace, where the projects are on the first level. Inside a project, there are files and folders in the same hierarchical structure as in the ''Project Explorer'' and ''Model Explorer''.
Files appear in the file system as files and folders are Unix directories or Windows folders and may contain other files and folders. Each time a file is saved, a copy is saved, which makes it possible to replace the current file with a previous edit or even restore a deleted file. Earlier versions of a file can be compared to the contents of all the local edits. Each edit in the local history is time stamped, i.e. is uniquely represented by the date and time the file was saved.
@@ -92,17 +93,17 @@ Projects can be viewed as the top level folder in the file system under the work
== <div id="Workbench">4.4 Workbench</div> ==
-The workbench is the Eclipse user interface and is used to navigate, view, and edit resources in a workspace, i.e. the workbench is the Eclipse IDE’s application window. The workbench presents one or more editors and ''views'' that are gathered into adjustable groups (''perspectives'').
+The workbench is the Eclipse user interface and is used to navigate, view, and edit resources in a workspace, i.e. the workbench is the Eclipse IDE's application window. The workbench presents one or more editors and ''views'' that are gathered into adjustable groups (''perspectives'').
The first time Eclipse is started, after the installation, a ''Welcome'' page is presented. Take a few minutes to explore the product overview and getting started information that is located here.
-<center>[[File:WelcomePage.bmp|center|thumb|500px|Figure 6: The Eclipse welcome page]]</center>
+<center>[[File:WelcomePage.bmp|center|thumb|480px|Figure 6: The Eclipse welcome page]]</center>
To return to the ordinary workbench, just click on the workbench icon up to the right. When starting Eclipse, subsequent times, the workbench appears directly. To visit the welcome page at any time, just select '''Help &gt; Welcome'''.
The title bar of the workbench window and the little Papyrus icon to the right indicates which ''perspective'' is active. In this example, the Papyrus ''perspective'' is in use. The ''Project Explorer'' and the ''Model Explorer, Outline, Properties'' views, etc. are open, along with a ''Class Diagram'' editor and its tool palette.
-<center>[[File:Workbench.bmp|center|thumb|600px|Figure 7: The Papyrus perspective in the workbench]]</center>
+<center>[[File:Workbench.bmp|center|thumb|512px|Figure 7: The Papyrus perspective in the workbench]]</center>
It is easy to toggle between perspectives by clicking on some shown ''perspective'' in top of the right hand corner or open a new one by clicking on the ''Open Perspective'' icon [[File:IkonOpenPerspective.png]] and browse to the ''perspective'' to open. It is also possible to reorganize a ''perspective'', open/close ''views'', customize menus, etc. and then save the ''perspective'' with a new name by '''Window &gt; Save Perspective As ...'''.
@@ -126,7 +127,7 @@ In the workbench figure, above, also ''stacked views'' appear, e.g. ''Properties
To customize the settings for the Eclipse workbench and the installed features, the preference window is used. Use '''Windows &gt; Preferences''' to open it, e.g. under '''General &gt; Keys''' in the preference window there are shortcuts and keys defined for the user interface. Here they can be redefined or own sets could be defined.
-<center>[[File:Preferences.bmp|center|thumb|500px|Figure 8: The preference window]]</center>
+<center>[[File:Preferences.bmp|center|thumb|556px|Figure 8: The preference window]]</center>
The preference window pages can be searched using the filter function. To filter by matching the page title, simply type the name of the page and the available pages will be presented below.
@@ -138,9 +139,9 @@ Projects can be shared between workspaces by using project import and export, wh
{|
|
-[[File:ImportWiz.bmp|center|thumb|300px|Figure 9: Import wizard]]
+[[File:ImportWiz.bmp|center|thumb|420px|Figure 9: Import wizard]]
|
-[[File:ExportWiz.bmp|center|thumb|300px|Figure 10: Export wizard]]
+[[File:ExportWiz.bmp|center|thumb|538px|Figure 10: Export wizard]]
|}
When importing a project into the used workspace, it can be copied by checking the box ''Copy ...'' in the import wizard. If this check box is unchecked, there will just be a reference to the other workspace and when editing that project, it will be edited in its original place. Be aware of that when doing so, several instances of Eclipse may edit the same resource.
@@ -149,29 +150,29 @@ When exporting a project, browse to the place where to export it to name it and
= 5 Modeling =
-Papyrus is a comprehensive UML modeling environment, where many diagrams can be used to view different aspects of a system. Behind all diagrams, there is a model where all modeling elements, used in these diagrams, are stored. The model keeps the consistency between all diagrams.
+Papyrus is a comprehensive UML modeling environment, where diagrams can be used to view different aspects of a system. Behind all the diagrams, there is a model where the modeling elements, used in these diagrams, are stored. The model maintains the consistency between all diagrams.
-A model is the collection of all the modeling elements, definitions and relationships that compose a software system. Papyrus enables the creation, viewing and manipulation of UML diagrams as specified in the [http://www.omg.org/spec/UML/2.4.1/ UML 2 specification].
+A model is the collection of all the modeling elements and relationships that compose a software system. Papyrus enables the creation, viewing and manipulation of UML diagrams as specified in the [http://www.omg.org/spec/UML/2.4.1/ UML 2 specification].
The model defines every element, representing some part of the system. Multiple model diagrams can reference an element many times. Each of the different diagrams can view a different aspect of the system.
-The model is the basis of the diagrams and keep the diagrams consistent. The diagrams are stored in the model's hierarchical structure. Some are owned by a modeling element like a class and some are just organized into some packages (a.k.a folders in basic Eclipse projects).
+The model is the basis of the diagrams and keep the diagrams consistent. The diagrams are stored in the model's hierarchical structure. Some are owned by a modeling element like a class and some are just organized into packages and then owned by the package (a.k.a folders in basic Eclipse projects). '''Note!''' the top level of the model is the model package, which is a special kind of a package.
== 5.1 Model and diagrams ==
-The model is the basis of all diagrams and keeps the consistency between the diagrams. The model is a collection of definitions of elements that compose the system and the relationships between them. Diagrams can be used to view subsets of the underlying model and from various view points. A model of a system may require many different diagrams to represent different views of the system for different project stakeholders.
+The model is the basis for all diagrams and maintains the consistency between the diagrams. The model is a collection of definitions of elements that compose the system and the relationships between them. Diagrams can be used to view subsets of the underlying model and from various view points. A model of a system may require many different diagrams to represent different views of the system for different project stakeholders.
-In Papyrus, you can open and add diagrams to the model in the ''Model Explorer'' view. The ''Models Explorer'' shows diagrams in their logical place within the model.
+In Papyrus, diagrams are be viewed and created in the ''Model Explorer'' view. The ''Model Explorer'' shows diagrams in their logical place within the model.
-The visual representation of a system that diagrams provide can offer both low-level and high-level insights into the concepts and design of an application.
+The visual representation of a system that diagrams provide can offer both low-level and high-level insights into the concepts and design of a system.
= 6 Tutorials =
The tutorials are focused on selected topics regarding the use of Papyrus and contains step by step instructions on how to create and manipulate the workbench and models.
-== 6.1 Getting started ==
+== 6.1 Getting started with general Eclipse functionality==
-This tutorial is about to understand the workbench environment and the basic Eclipse features.
+This tutorial is about to understand the workbench environment and the basic Eclipse terminology.
=== 6.1.1 Exploring perspectives ===
@@ -179,7 +180,7 @@ This part demonstrates the differences between the ''Papyrus'' and the ''Resourc
==== 6.1.1.1 Exploring the ''Papyrus'' perspective ====
-Explore the default menu, toolbar, and views in the ''Papyrus'' perspective.
+Explore the Papyrus default menus, toolbar, and views in the ''Papyrus'' perspective.
# To switch to the ''Payrus'' perspective, click '''Window &gt; Open Perspective &gt; Other'''. Then choose the ''Papyrus'' perspective. (Notice the workbench title bar and perspective bar reflect that the ''Papyrus'' perspective is active. Notice also the main menu items, toolbar buttons, and views that is visible in this perspective.)
# Click '''File &gt; New''' and notice that the menu contains the items ''Papyrus Project'' and ''Papyrus Model'' among other items.
@@ -193,12 +194,12 @@ Explore the default menu, toolbar, and views in the ''Resource'' perspective and
# Click '''File &gt; New''' and notice that there are no Papyrus items in the menu.
# Click '''Window &gt; Show View''' and notice that the menu does NOT contain the items ''Model Explorer'' and ''Model Validation''.
# Click '''Window &gt; Customize Perspective'''. Ensure that the workbench title bar and perspective bar reflect that the ''Resource'' perspective is active.
-# In the ''Customize Perspective – Resource'' pop up window, select the ''Shortcuts'' tab and select '''Show View''' from the ''Submenus'' combo box.
+# In the ''Customize Perspective - Resource'' pop-up window, select the ''Shortcuts'' tab and select '''Show View''' from the ''Submenus'' combo box.
# Clear all check boxes in the ''Shortcut Categories'' list.
# Click ''General''(not check the check box) in the ''Shortcut Categories'' list, select the check box next to ''Project Explorer'' in the ''Shortcuts'' list, and click ''OK''.
# Click '''Window &gt; Show View''' and notice the menu now just contains the ''Project Explorer'' item.
-=== 6.1.2 Creating a project, folder and files ===
+=== 6.1.2 Creating a new project, folder and files ===
In this section a new project, folder and files will be created in the ''Resource'' perspective.
@@ -297,7 +298,7 @@ Export ''My Project'' to a compressed file:
Remove ''My Project'' from the workspace:
# Right-click ''My Project'' in the ''Project Explorer'' and select '''Delete''' from the context menu.
-# In the ''Delete Resources'' pop up window, make sure to check the
+# In the ''Delete Resources'' pop-up window, make sure to check the
''Delete project contents on disk'' check box. Click ''OK''. Note: If this check box is unchecked, the resource will just be deleted from the Workbench, but it will still exist in the workspace. (Notice ''My Project'' is no longer listed in the ''Project Explorer'')
@@ -324,14 +325,153 @@ The basic features of the Eclipse workbench have now been demonstrated.
== 6.2 Creating profiles ==
-== 6.3 Creating models ==
+== 6.3 Creating models using Papyrus ==
-=== 6.3.1 Use case modeling ===
+=== 6.3.1 Use-case modeling ===
=== 6.3.2 Design modeling ===
+This is a tutorial about general class and object modeling using Papyrus.
+
+==== 6.3.2.1 Create a new UML project ====
+
+Create a new UML modeling project as follows:
+
+# If necessary switch to the ''Papyrus'' perspective by clicking on '''Window &gt; Open Perspective &gt; Other'''. Then choose the ''Papyrus'' perspective. If the ''Papyrus'' perspective is already active, click on '''Window &gt; Reset Perspective...''' to get back to its default configuration.
+# Click '''File &gt; New &gt; Papyrus Project'''.
+# In the ''New Papyrus Project'' wizard, name the project <code>My Design Model</code> and click ''Next''.
+# Make sure that the radio button ''UML'' is selected and click ''Next''.
+# Under the section ''You can load a template'', check the box ''A UML model with basic primitive types (ModelWithBasicTypes)'' and click on ''Finish''.
+
+==== 6.3.2.2 Create new packages to be used for classes====
+
+Create two packages in the model:
+
+# Right-click on the ''model'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Package''' and select the created package in the ''Model Explorer''.
+# In the ''Properties'' view type <code>Clients</code> in the the field ''Name''.
+# Right-click on the ''model'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Package''' and select the created package in the ''Model Explorer''.
+# In the ''Properties'' view type <code>Server</code> in the the field ''Name''.
+
+==== 6.3.2.3 Create new classes ====
+
+Create two classes in the ''Server'' package. One is called ''Server1'' and the other is called ''DataClass1'':
+
+# Right-click on the ''Server'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Class''' and select the created class in the ''Model Explorer''.
+# In the ''Properties'' view type <code>Server1</code> in the the field ''Name''.
+# Right-click on the ''Server'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Class''' and select the created class in the ''Model Explorer''.
+# In the ''Properties'' view type <code>DataClass1</code> in the the field ''Name''.
+
+Create three different client classes in the ''Clients'' package:
+
+# Right-click on the ''Clients'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Class''' and select the created class in the ''Model Explorer''.
+# In the ''Properties'' view type <code>Client1</code> in the the field ''Name''.
+# Right-click on the ''Clients'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Class''' and select the created class in the ''Model Explorer''.
+# In the ''Properties'' view type <code>Client2</code> in the the field ''Name''.
+# Right-click on the ''Clients'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Class''' and select the created class in the ''Model Explorer''.
+# In the ''Properties'' view type <code>ClientRoot</code> in the the field ''Name''.
+
+==== 6.3.2.4 Create new class diagrams ====
+
+Create two class diagrams in the model:
+
+# Right-click on the ''model'' package in the ''Model Explorer'', select '''New Diagram &gt; Create a new Class Diagram''' and type <code>Packages</code> in the ''Enter a new diagram name'' pop-up window.
+# Right-click on the ''model'' package in the ''Model Explorer'', select '''New Diagram &gt; Create a new Class Diagram''' and type <code>Classes</code> in the ''Enter a new diagram name'' pop-up window.
+
+==== 6.3.2.5 Create new operations and attributes ====
+
+# Right-click on the class ''DataClass1'' and select '''New Child &gt; Create a new Property''' and select the created attribute in the ''Model Explorer''.
+# In the ''Properties'' view, type <code>Field1</code> in the field ''Name'' and by the ''Type'' field click on the [[File:TypeKey.bmp]] key and select ''Integer'' from the ''UML Primitive Types''. This cause the created attribute to be named ''Field1'' and to be of type ''Integer''.
+# Follow the above pattern to also create the attributes ''Field2'' of type ''Integer'', ''Field3'' of type ''String'', and ''Field4'' of type ''String'' on class ''DataClass1''.
+# Create the attributes ''Attribute2'' of type ''String'', ''Attribute4'' of type ''Integer'' and ''Attribute5'' of type ''DataClass1'' on class ''Client1''.
+# Create the attribute ''Attribute3'' on class ''Client2''.
+# Create the attribute ''Attribute1'' on class ''Server1''.
+# Create the operation ''service1'' on class ''Server1'' by right-click on on the class ''Server1'' and select '''New Child &gt; Create a new Operation''' and select the created operation in the ''Model Explorer''.
+# In the ''Properties'' view, type <code>service1</code> in the the field ''Name'' and by the ''Owned parameter'' field click on the [[File:PlusKey.bmp]] key.
+# In the ''Create a new parameter'' pop-up window, type <code>service1return</code> in the ''Name'' field, select ''return'' from the ''Direction'' field drop down list and by the ''Type'' field click on the [[File:TypeKey.bmp]] key and select ''Integer'' from the ''UML Primitive Types''. This causes the return type of the operation to be defined as an integer.
+
+
+==== 6.3.2.6 Create new relationships between classes ====
+
+Create a ''Dependency'' relationship between the ''Clients'' and the ''Server'' packages:
+
+# Open the ''Diagram Packages'' diagram by double click on it in the ''Model Explorer''
+# Drag the ''Clients'' package to the class diagram (by click on it and while holding the mouse button down, move the cursor to the editing area in the class diagram editor and release it).
+# Drag the '' Server'' package to the class diagram.
+# Select the ''Dependency'' tool from the ''Edges'' drawer in the ''Palette'', click on the ''Clients'' package and then on the ''Server'' package in the class diagram.
+# Type <code>Dependency</code> as the name of the relationship.
+
+Create a ''Generalization'' relationship between the classes ''Client2'' and ''Client1'', i.e. make ''Client2'' a sub-class of ''Client1'':
+
+# Open the ''Diagram Classes'' diagram by double click on it in the ''Model Explorer''
+# Drag the ''Client1'' class to the class diagram.
+# Drag the ''Client2'' class to the class diagram.
+# Select the ''Generalization'' tool from the ''Edges'' drawer in the ''Palette'', click on the ''Client2'' class and then on the ''Client1'' class in the class diagram.
+
+Create a ''Composite'' relationships between the classes ''ClientRoot'' and ''Client1'' plus ''ClientRoot'' and ''Client2'':
+
+# Continue with the already opened class diagram ''Diagram Classes''.
+# Drag the ''ClientRoot'' class to the class diagram.
+# Select the ''Association'' tool from the ''Edges'' drawer in the ''Palette'', click on the ''ClientRoot'' class and the on the ''Client1'' class in the class diagram.
+# Select the created association in the class diagram and in the ''Properties'' view, rename the association to <code>cr-c1</code>.
+# Also in the same ''Properties'' view, at the member end, named ''client1'', by the ''Aggregation'' field, select ''composite'' from the drop down list.
+# Select the ''Association'' tool from the ''Edges'' drawer in the ''Palette'', click on the ''ClientRoot'' class and the on the ''Client2'' class in the class diagram.
+# Select the created association in the class diagram and in the ''Properties'' view, rename the association to <code>cr-c2</code>.
+# Also in the same ''Properties'' view, at the member end, named ''client2'', by the ''Aggregation'' field, select ''composite'' from the drop down list.
+
+==== 6.3.2.7 Create a new package to be used for objects ====
+
+Create a new package in the model:
+
+# Right-click on the ''model'' package in the ''Model Explorer'', select '''New Child &gt; Create a new Package''' and select the created package in the ''Model Explorer''.
+# In the ''Properties'' view type <code>Objects</code> in the the field ''Name''.
+
+==== 6.3.2.8 Create new objects ====
+
+Create objects (instances of classes) in the ''Objects'' package:
+
+# Right-click on the ''Objects'' package in the ''Model Explorer'', select '''New Child &gt; Create a new InstanceSpecification''' and select the created object (InstanceSpecification) in the ''Model Explorer''.
+# In the ''Properties'' view type <code>clientObj1</code> in the the field ''Name'' and by the ''Classifier'' field click on the [[File:PlusKey.bmp]] key. In the ''Classifier'' window that pops up, browse to the ''Client2'' class and click on the [[File:Arrow.bmp]] key, which specifies the object's class as shown in figure 11.
+
+<center>[[File:ClassifierPopUp.bmp|center|thumb|400px|Figure 11: The Classifier pop up window]]</center>
+
+Follow the same pattern to create:
+
+# An object called ''clientObj2'' in the ''Objects'' package based on class ''Clent2''.
+# An object called ''serverObj1'' in the ''Objects'' package based on class ''Server1''.
+
+==== 6.3.2.9 Create a new class diagram ====
+
+Create a class diagrams in the model to depicts the created objects:
+
+# Right-click on the ''model'' package in the ''Model Explorer'', select '''New Diagram &gt; Create a new Class Diagram''' and type <code>Objects</code> in the the ''Enter a new diagram name'' pop-up window.
+
+==== 6.3.2.10 Create new relationships between objects ====
+
+Create a ''Dependency'' relationship between the clients and the server objects:
+
+# Open the ''Diagram Objects'' diagram by double click on it in the ''Model Explorer''
+# Drag the ''clientObj1'' object to the class diagram (by click on it and while holding the mouse button down, move the cursor to the editing area in the class diagram editor and release it).
+# Drag the ''clientObj2'' object to the class diagram
+# Drag the ''serverObj1'' object to the class diagram.
+# Select the ''Dependency'' tool from the ''Edges'' drawer in the ''Palette'', click on the ''clientObj1'' object and then on the ''serverObj1'' object in the class diagram. Leave the default name on the relationship.
+# Also create a ''Dependency'' relationship between the ''clientObj2 and the ''serverObj1''.
+
+==== 6.3.2.11 Conclusion ====
+
+In this tutorial the following model was created:
+
+<center>[[File:DesignModelEx1.bmp|center|thumb|400px|Figure 12: Two packages on top in the model]]</center>
+
+<center>[[File:DesignModelEx2.bmp|center|thumb|400px|Figure 13: Relationships between the client classes]]</center>
+
+'''Note!''' The inherited attributes depicted in figure 13 on the ''Client2'' class.
+
+<center>[[File:ObjectDiagram.bmp|center|thumb|400px|Figure 14: Objects in the model and their relationships]]</center>
+
=== 6.3.3 RT modeling ===
+
+
= 7 Papyrus =
Papyrus can be used to do
@@ -349,15 +489,15 @@ In Papyrus, different UML profiles can be applied. When installing Papyrus, as d
When modeling in Papyrus, three types of resources are stored in the workspace.
{|
|
-[[File:ModelProjResourcesFS.bmp|center|thumb|400px|Figure 11: Resources in the file system]]
+[[File:ModelProjResourcesFS.bmp|center|thumb|400px|Figure 15: Resources in the file system]]
|
-[[File:ModelProjResourcesPE.bmp|center|thumb|200px|Figure 12: Resources in the Project 'Explorer']]
+[[File:ModelProjResourcesPE.bmp|center|thumb|200px|Figure 16: Resources in the Project Explorer]]
|}
* '''.di''' file persists the status of the workbench, i.e. which diagrams and views are opened, etc.
-* '''.notation''' file keeps the information about the diagrams in the model.
-* '''.uml''' file contains the UML model.
+* '''.notation''' file persists the information about the diagrams in the model.
+* '''.uml''' file persists the UML model.
-Note! In this case the model is contained in three files. When working in an industrial context, the model may need to be split up into several fragments in order for several designers to work in parallel with the same model. This is described in section [[#7.6_Papyrus_in_a_team_environment|Papyrus in a team environment]] .
+Note! In this case the model is contained in three files. When working in an industrial context, the model may need to be split up into several fragments in order for several designers to work concurrently with the same model. This is described in section [[#7.6_Papyrus_in_a_team_environment|Papyrus in a team environment]] .
== 7.2 The Papyrus perspective ==
@@ -365,38 +505,38 @@ When Papyrus is installed a predefined perspective called ''Papyrus'' is made av
=== 7.2.1 Project Explorer view ===
-The ''Project Explorer'' view is used to browse, select and manipulate resources in the workspace. Projects or working sets are the top level in this view. From the ''Project Explorer’s'' (right click on the white space) context menu, e.g. new projects can be created.
+The ''Project Explorer'' view is used to browse, select and manipulate resources in the workspace. Projects or working sets are the top level in this view. From the ''Project Explorer's'' (right click on the white space) context menu, e.g. new projects can be created.
-<center>[[File:ProjectExpl.bmp|center|thumb|200px|Figure 13: The Project Explorer]]</center>
+<center>[[File:ProjectExpl.bmp|center|thumb|200px|Figure 17: The Project Explorer]]</center>
-In some views, as in this case, there is a view specific menu (indicated in Figure 13 with a red ring). Here some settings could be done for the view, e.g. if the top level should be working sets or projects.
+In some views, as in this case, there is a view specific menu (indicated in Figure 13 with a red ring). Here some settings can be applied for the view, e.g. if the top level should be working sets or projects.
=== 7.2.2 Model Explorer view ===
In the ''Model Explorer'' view, the model that has been opened in the ''Project Explorer'', can be browsed and edited. Model elements can be added by using the context menu of any existing modeling element, including the model package and packages. Diagrams can also be added by using the context menus. Existing diagrams can be opened in an appropriate editor by just double clicking on the diagram in the ''Model Explorer''.
-<center>[[File:ModelExpl.bmp|center|thumb|200px|Figure 14: The Model Explorer]]</center>
+<center>[[File:ModelExpl.bmp|center|thumb|200px|Figure 18: The Model Explorer]]</center>
=== 7.2.3 Editing view ===
-The ''Editing View'' is in the middle part of the workbench and here opens different types of editors, depending on the type of resource to edit, e.g. if a class diagram is opened, the class diagram editor will be started in the ''Editing View''.
+The ''Editing View'' is in the middle part of the workbench and here opens different types of editors, depending on the type of resource to edit, e.g. if a class diagram is opened, the class diagram editor will be visible in the ''Editing View''.
-<center>[[File:EditingView.bmp|center|thumb|400px|Figure 15: The 'Editing View']]</center>
+<center>[[File:EditingView.bmp|center|thumb|400px|Figure 19: The Editing View]]</center>
-How to use editors is described in section [[#7.3_Diagram_editing_in_Papyrus|Editors in Papyrus]] .
+How to use editors is described in section [[#7.3_Diagram_editing_in_Papyrus|Editors in Papyrus]].
=== 7.2.4 Outline view ===
-The ''Outline View'' is connected to the ''Editing View'' and gives an overview of what is opened in the ''Editing View''. The ''Outline View'' may be used to pan the ''Editing View'' or to select some information that will be highlighted in the ''Editing View''. The shaded area is the area that is visible in the ''Editing View''.
+The ''Outline View'' is connected to the ''Editing View'' and gives an overview of what is open in the ''Editing View''. The ''Outline View'' may be used to pan the ''Editing View'' or to select some information that will be highlighted in the ''Editing View''. The shaded area is the area that is visible in the ''Editing View''.
-<center>[[File:OutlineView.bmp|center|thumb|200px|Figure 16: The 'Outline View']]</center>
+<center>[[File:OutlineView.bmp|center|thumb|200px|Figure 20: The Outline View]]</center>
=== 7.2.5 Properties view ===
-The ''Properties view'' is located as a stacked view at the bottom of the workbench and shows the properties of a selected modeling element. The modeling element can be selected in the Model Explorer or in a diagram. The properties are categorized under different tabs to the left in the ''Properties view''.
+The ''Properties view'' is a stacked view which is located at the bottom of the workbench and shows the properties of a selected modeling element. The modeling element can be selected in the Model Explorer or in a diagram. The properties are categorized under different tabs located to the left in the ''Properties view''.
-<center>[[File:PropertiesView.bmp|center|thumb|500px|Figure 17: The 'Properties View']]</center>
+<center>[[File:PropertiesView.bmp|center|thumb|500px|Figure 21: The Properties View]]</center>
In this view the properties may be viewed and edited, e.g. rename the operation and change the visibility of the operation.
@@ -405,7 +545,7 @@ In this view the properties may be viewed and edited, e.g. rename the operation
From the context menu in the ''Model Explorer'' it is possible to validate the entire model or parts of it (for more details see section [[#7.7_Model_validation|Model validation]] . All warnings and errors appear in the ''Model Validation View'', which is a stacked view together with the ''Properties View'' and the ''Search View'' at the bottom of the workbench.
-<center>[[File:ModelValidationView.bmp|center|thumb|500px|Figure 18: The 'Model Validation View']]</center>
+<center>[[File:ModelValidationView.bmp|center|thumb|500px|Figure 22: The Model Validation View]]</center>
The model validation constraints are customizable and how to work with it is described in section [[#7.7_Model_validation|Model validation]] .
@@ -414,9 +554,9 @@ The model validation constraints are customizable and how to work with it is des
It is possible to do searches on a selected resource in a specific project or in the entire workspace. When the search is finished, the result appears in the ''Search View''. Details about specifying searches is described in the [[#7.8_Searching|Searching]] section.
-<center>[[File:SearchView.bmp|center|thumb|500px|Figure 19: The Search View]]</center>
+<center>[[File:SearchView.bmp|center|thumb|500px|Figure 23: The Search View]]</center>
-The example in Figure 19 shows the result of a model search for ''Class1'' in the entire workspace.
+The example in Figure 23 shows the result of a model search for ''Class1'' in the entire workspace.
== <div id="EditorsinPapyrus">7.3 Diagram editing in Papyrus</div> ==
@@ -424,34 +564,34 @@ To edit diagrams different editors are available in Papyrus. They have the same
=== 7.3.1 Diagram editors ===
-When a diagram editor is opened in Papyrus, three views are opened
+When a diagram editor is opened in Papyrus, three views are opened:
* Editing surface
* Palette
* Outline
-<center>[[File:DiagramEditorFieldsPointers.bmp|center|thumb|500px|Figure 20: Parts of a diagram editor, e.g. class diagram editor]]</center>
+<center>[[File:DiagramEditorFieldsPointers.bmp|center|thumb|500px|Figure 24: Parts of a diagram editor (as an example, the class diagram editor is used)]]</center>
-Figure 20 shows the different parts of a diagram editor. In this case the class diagram editor has been chosen as an example. The editing surface is where the diagram editing is taken place. The outline view gives an overview of the entire diagram. The blue shaded part in the outline view shows what is visible in the editing surface. The palette contains drawers and in each drawer there are tools to be used to add different things into the diagram. In Figure 20, the Nodes drawer is closed and the edge drawer is opened. In the edge drawer there are tools to create different types of edges. By clicking on a drawer, it toggles open and close drawer.
+Figure 24 shows the different parts of a diagram editor. In this case the class diagram editor has been chosen as an example. The ''Editing surface'' is where the diagram editing is taken place. The ''Outline view'' gives an overview of the entire diagram. The blue shaded part in the ''Outline view'' shows what is visible in the editing surface. The ''Palette'' contains ''Drawers'' and in each drawer there are ''Tools'' to be used to add different things into the diagram. In Figure 22, the ''Nodes'' drawer is closed and the ''Edges'' drawer is opened. In the ''Edges'' drawer there are ''Tools'' to create different types of edges. By clicking on a drawer, it toggles open and close drawer.
=== 7.3.2 Basic tool techniques ===
-Diagrams can be created in different places in the model such as they can be owned by model elements like classes or packages (a.k.a folders in basic Eclipse). Diagrams can also be placed on top of the model directly under the model package.
+Diagrams can be created in different places in the model such as they can be owned by model elements like classes or packages. Diagrams can also be placed on top of the model directly under the model package.
==== 7.3.2.1 Creating diagrams ====
To create a diagram, right click on the model element that should be the owner of the diagram and select '''New Diagram''' from the context menu. A new level of menu appears, displaying all types of diagrams that are available to create in this place, e.g. Figure 21 shows the available diagram types that can be created directly on top in the model package.
-<center>[[File:NewDiagram.bmp|center|thumb|500px|Figure 21: Available diagram types that can be created directly under the model package]]</center>
+<center>[[File:NewDiagram.bmp|center|thumb|500px|Figure 25: Available diagram types that can be created directly under the model package]]</center>
-'''Note!''' In Figure 21, no adaptation of Papyrus has taken place, hence all diagram types according to UML pops up. In a project environment, it is recommended that a support organization minimize the available choices in menus like this.
+'''Note!''' In Figure 25, no adaptation of Papyrus has taken place, hence all diagram types according pops up.
==== 7.3.2.2 Scrolling and panning in diagrams ====
Scrolling and panning in diagrams can be done by either:
* Use the outline view and click (hold down) and drag the blue shaded area around, which simultaneously pans the editing surface.
-* Use the vertical and horisontal scroll bars in the editing surface.
+* Use the vertical and horizontal scroll bars in the editing surface.
==== 7.3.2.3 Creating an element in a diagram ====
@@ -469,67 +609,187 @@ If an element already exists in the model, just click on (hold down) the element
In a diagram, elements can be deleted or hided.
-<center>[[File:ElementContextMenuDiaDelHide.bmp|center|thumb|200px|Figure 22: Context menu of an element in a diagram]]</center>
+<center>[[File:ElementContextMenuDiaDelHide.bmp|center|thumb|200px|Figure 26: Context menu of an element in a diagram]]</center>
Right click on an element in a diagram and do
-* '''Delete Selected Element''' will delete the element from the entire model and also from all diagrams where it appears.
+* '''Delete Selected Element''' will delete the element from the entire model and also from all diagrams where it was present.
* '''Hide Selected Element''' will hide the element just in this diagram.
'''Note!''' These menu items have short cuts, i.e. instead of using the context menu, just select the element in the diagram and use the '''Delete''' or '''Shift-Delete''' keys
==== 7.3.2.5 Formating and validating diagrams ====
-Diagrams can be adjusted and graphically edited to get a nicer look also using the element context menu. From the same context menu it is also possible to validate the model or parts of the model.
+Diagrams can be adjusted and graphically edited to get a nicer look also using the element context menu. From the same context menu it is also possible to validate the model or specific parts of the model.
-<center>[[File:ElementContextMenuDiaFormat.bmp|center|thumb|300px|Figure 23: Example of the Format sub context menu]]</center>
+<center>[[File:ElementContextMenuDiaFormat.bmp|center|thumb|300px|Figure 27: Example of the Format sub context menu]]</center>
-In Figure 23 several menu items are shown
+In Figure 27 several menu items are shown, e.g.:
-* '''Edit''' to do some basic graphical editing like copy/paste
-* '''Validation''' to validate the model partly or totally
-* '''Format''' to do some advanced formating of the diagram like adjustments, routing, etc. as shown in the sub context menu in Figure 23
+* '''Validation''' to validate the model partly or fully
+* '''Format''' to do some advanced formating of the diagram like adjustments, routing, etc. as shown in the sub context menu in Figure 25
* '''Filter''' to select/unselect parts of symbols that should be visible or not
== <div id="UMLmodeling">7.4 UML modeling</div> ==
-With Papyrus, UML models can be created. Preferably this is done using different types of diagrams. Modeling elements can be created in these diagrams or directly in the ''Model Explorer''. Diagrams are created in the ''Model Explorer'' and when doing so, a diagram editor together with its tool palette and outline view are also opened. Section [[#7.3_Diagram_editing_in_Papyrus|Diagram editing in Papyrus]] describes how to work with diagram editors.
+With Papyrus, UML models can be created. This is done using different types of diagrams. Modeling elements can be created in these diagrams or directly in the ''Model Explorer''. Diagrams are created in the ''Model Explorer'' and when doing so a diagram editor together with its tool palette and outline view are also opened. Section [[#7.3_Diagram_editing_in_Papyrus|Diagram editing in Papyrus]] describes how to work with diagram editors.
-=== <div id="UMLdiagrams">7.4.1 Diagrams</div> ===
+The most common modeling elements are:
-UML has many different types of diagrams to capture all different aspects of a system. To capture and refine requirements, diagrams related to use cases are used. To specify the architecture and design, diagrams related to classes and packages are used, To specify the implementation, state and activity diagrams are used, etc.
+* Package
+* Use-case
+* Actor
+* Class
+* Object
-==== 7.4.1.1 Diagrams related to Use Cases ====
+=== 7.4.1 Package ===
-When working with requirement capture and refinement, use case modeling is used and any or all of the following diagrams can be used:
+A ''package'' is a general UML grouping element, comparable to a folder in Windows or a directory in Unix. It is used to bring order in the model. A ''package'' may have a semantical meaning (e.g. representing a subsystem) and then a UML stereotype, defined in a applied UML Profile, may be added to it (e.g. &lt;&lt; subsystem &gt;&gt;). To create a new ''package'', right click on the owning element, e.g. the model package and from the context menu select '''New Child &gt; Create a new Package'''
+
+<center>[[File:NewPackage.bmp|center|thumb|500px|Figure 28: Create a new Package]]</center>
+
+=== 7.4.2 Use-case ===
+
+A ''use-case'' is a functionality in the system. A ''use-case'' is a model of the dialogue between actors and the system. It should return a result of measurable value to at least one actor. A ''use-case'' is initiated by an actor to invoke a certain functionality in the system.
+A ''use-case'' is a complete and meaningful flow of events.
+Taken together, all ''use-cases'' constitute all possible ways of using the system.
+
+To create a new ''use-case'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new UseCase'''
+
+<center>[[File:NewUseCase.bmp|center|thumb|500px|Figure 29: Create a new use-case]]</center>
+
+=== 7.4.3 Actor ===
+
+An ''actor'' is something external to the system, but interacts with it. An ''actor'' may be a human being or another system. It may be active or passive. An ''actor'' interacts (active ''actor'') or receive (passive ''actor'') information from one or several use-cases.
+
+To create a new ''actor'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new Actor'''
+
+<center>[[File:NewActor.bmp|center|thumb|500px|Figure 30: Create a new actor]]</center>
+
+=== 7.4.4 Class ===
+
+A ''class'' is an extensible template for creating objects, providing initial values for state (member variables, attributes) and implementations of behavior (member functions, methods, operations).
-* Use Case diagram
+Collectively attributes define the structure of a ''class''. A class may have any number of attributes or none. Attributes are typically implemented as variables. An attribute has a type, which tells us what kind of attribute it is. Typical types of attributes are integer, Boolean, real, and enumeration. These types are called primitive types. More complex types are defined by other ''classes''.
+
+Collectively operations define the behavior of the ''class''. A ''class'' may have any number of operations or none. Operations are implemented as functions or procedures.
+
+To create a new ''class'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new Class'''
+
+<center>[[File:NewClass.bmp|center|thumb|500px|Figure 31: Create a new class]]</center>
+
+==== 7.4.4.1 Attributes on classes ====
+
+When a ''class'' is created, ''attributes'' can be added to it by using the context menu of the ''class''. To create a new ''attribute'' on the a ''class'' select '''New Child &gt; Create a new Property''' from its context menu.
+
+<center>[[File:NewAttribute.bmp|center|thumb|500px|Figure 32: Create a new attribute]]</center>
+
+The visibility, type and default value of the attribute are set in the properties view when the attribute is selected.
+
+==== 7.4.4.2 Operations on classes ====
+
+When a ''class'' is created, ''operations'' can be added to it by using the context menu of the ''class''. To create a new ''operation'' on the a ''class'' select '''New Child &gt; Create a new Operation''' from its context menu.
+
+<center>[[File:NewOperation.bmp|center|thumb|500px|Figure 33: Create a new operation]]</center>
+
+The visibility, arguments and return type of the operation are set in the properties view when the operation is selected.
+
+Regarding the arguments and return type of the an operation, select the [[File:PlusKey.bmp]] key by the ''Owned parameter'' field.
+
+<center>[[File:ClassOp1.bmp|center|thumb|600px|Figure 34: Create a new argument]]</center>
+
+Then the following window pops up and from the drop list in the ''Direction'' field, select the direction of the argument. In the ''Name'' field the name of the argument is written and the type is defined in the ''Type'' field.
+
+<center>[[File:ClassOp2.bmp|center|thumb|600px|Figure 35: Select the arguments direction]]</center>
+
+The direction ''return'' defines the return type of the operation. Only one argument can have the return direction.
+
+=== 7.4.5 Object ===
+
+An ''object'' is an instance of a class. In UML it is called and ''InstanceSpecification'', which is a more general term since it can be used for instances of other classifiers than classes.
+
+To create a new ''object'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new InstanceSpecification'''
+
+<center>[[File:NewObject.bmp|center|thumb|500px|Figure 36: Create a new object]]</center>
+
+The class to be instanciated is selected by clicking on the [[File:PlusKey.bmp]] key by the ''Classifier'' field in the ''Properties'' view of the ''InstanceSpecification''. This will open the ''Classifier'' pop-up window (figure 37), where the class to be used is selected.
+
+<center>[[File:ClassifierPopup.bmp|center|thumb|500px|Figure 37: Classifier pop-up window]]</center>
+
+=== 7.4.6 Relationships ===
+
+There are different types of relationships that can be used in diagrams, hence in the model between different modeling elements.
+
+ [[Image:Relationships.bmp|center|thumb|300px]]
+
+Navigability can be unidirectional or bidirectional for ''Association'', ''Aggregation'' and ''Composition''.
+
+''Association'' specifies peer-to-peer relationships between model elements, e.g. if a Class-x has an attribute of type Class-y, it can be viewed in a class diagram as and ''Association'' between Class-x and Class-y.
+
+''Aggregation'' is used to model a whole/part relationship between model elements. The part element can exist without the whole. ''Aggregation'' causes the generated code to contain the aggregate either by reference or by value, depending on the details of the relationship. E.g. to model an aggregation, the aggregate (Department) has an aggregation association to its constituent parts (Employee). A hollow diamond is attached to the end of an association path on the side of the aggregate (the whole) to indicate aggregation.
+
+''Composition'' is an aggregation with strong ownership, i.e. when the container is destroyed, all of its composite objects are destroyed as well.
+
+''Dependency'' is a relationship in which one model element uses another. ''Dependency'' may exist between classes if a message is sent from one class to the other or if one class mentions the other as a parameter to an operation. ''Dependency'' may exist between packages if one package is dependent on another.
+
+A ''Dependency'' relationship causes a class to be generated with inclusions or references to another class.
+
+A ''Generalization'' relationship causes a class to be generated as a subclass of another class.
+
+The ''Realizes'' relationship specifies that, e.g. an implementation realizes a specification. The ''Realizes'' relationship does not affect the code.
+
+To create a relationship between two modeling elements, use the tool palette in the diagram editor, e.g. to create an ''Association'' between two classes, select the ''Association'' tool in the tool palette, click on the source element and then click on the destination element as described in figure 38.
+
+[[Image:ClassDiagramEditorNewAss.bmp|center|thumb|500px|Figure 38: Create a new Association]]
+
+
+In the ''Edges'' drawer in the tool palette, all available relationships are shown. To create a ''Generalization'' relationship, select the ''Generalization'' tool from the tool palette and follow the same procedure as described.
+
+The ''Aggregation'' and the ''Composition'' relationships are a special kind of an ''Association'' relationship. To create any of these, an ''Association'' relationship needs first to be created. Then select the created ''Association'' and in the properties view, change the ''Aggregation'' field at the appropriate end of the ''Association'' to ''shared''(if an ''Aggregation'' is desired) or to ''composite'' (if a ''Composition'' is desired). Figure 39 shows how to do it.
+
+[[Image:ClassDiagramEditorNewAgg.bmp|center|thumb|500px|Figure 39: Create a new Association]]
+
+When the ''Association'' is created, the ''Aggregation'' field is set to ''none'' by default. When doing the change at the destination end (as in figure 35), the diamond shows up at the source end of the relationship.
+
+=== 7.4.7 Diagrams ===
+
+UML has many different types of diagrams to capture all different aspects of a system. To capture and refine requirements, diagrams related to use-cases are used. To specify the architecture and design, diagrams related to classes and packages are used. To specify the implementation, state and activity diagrams are used, etc.
+
+The different diagrams in UML 2 are shown in figure 40 and here they are structured after diagram type. In the following of this section they are organized how they are used.
+
+<center>[[File:UMLdiagrams.png|center|thumb|500px|Figure 40: UMl 2 diagram types]]</center>
+
+'''Note!''' In Papyrus class diagrams are also used as object diagrams.
+
+==== 7.4.7.1 Diagrams related to use-cases ====
+
+When working with requirement capture and refinement, use-case modeling is used and any or all of the following diagrams can be used:
+
+* Use-case diagram
* Activity diagram
* Interaction diagram
** Sequence diagram
** Collaboration diagram
-===== 7.4.1.1.1 Use case diagram =====
-A ''use case diagram'' describe how different ''Actors'' use different functionality of the system. Implicitly, it also define the system boundary, since it shows what should be performed by the system and what exists outside the system. The elements used in ''use case diagrams'' are:
+A ''use-case diagram'' describe how different ''Actors'' use different functionality of the system. Implicitly, it also define the system boundary, since it shows what should be performed by the system and what exists outside the system. The elements used in ''use-case diagrams'' are:
* '''Actors''' interact with, but are outside the system.
-* '''Use cases''' are some functionality that are performed by the system.
+* '''Use-cases''' are some functionality that are performed by the system.
* '''Relationships''' between elements.
-A diagram may depict all or some of the use cases of a system.
+A diagram may depict all or some of the use-cases of a system.
-<center>[[File:UCdiagram.bmp|center|thumb|400px|Figure 24: 'Use case diagram']]</center>
+<center>[[File:UCdiagram.bmp|center|thumb|600px|Figure 41: Use-case diagram]]</center>
-A ''use case'' interacts with an ''actor'' and perform something useful for that ''actor''. A ''use case'' exist because of its main flow, but all odd cases and error situations have to be specified. A ''use case'' has a black box and a white box view. The black box view is preferably described in plain text or by using activity diagrams. The white box view is described by one or several sequence diagrams.
+A ''use-case'' interacts with an ''actor'' and perform something useful for that ''actor''. A ''use-case'' exist because of its main flow, but all odd cases and error situations have to be specified. A ''use-case'' has a black box and a white box view. The black box view is preferably described in plain text or by using activity diagrams. The white box view is described by one or several sequence diagrams.
-All ''use cases'' together, spans the entire functionality of the system. ''Actors'', ''use cases'' and ''use case diagrams'' are owned by packages (general UML packages or model packages).
+All ''use-cases'' together span the entire functionality of the system. ''Actors'', ''use-cases'' and ''use-case diagrams'' are owned by packages (general UML packages or model packages).
-To create a ''use case diagram'', right click on the owning package and select '''New Diagram &gt; Create a new UseCase Diagram''' from its context menu.
+To create a ''use-case diagram'', right click on the owning package and select '''New Diagram &gt; Create a new UseCase Diagram''' from its context menu.
-===== 7.4.1.1.2 Activity diagram =====
-An ''activity diagram'' is a kind of behavioral diagram and shows flow of control from activity to activity. It is used to specify a use case black box view. It can also be used to specify a flow chart for a class operation.
+An ''activity diagram'' is a kind of behavioral diagram and shows flow of control from activity to activity. It is used to specify a use-case black box view. It can also be used to specify a flow chart for a class operation.
The main elements in an ''activity diagram'' are:
@@ -541,19 +801,17 @@ The main elements in an ''activity diagram'' are:
* Decisions
* Partitions
-<center>[[File:ActivityDiagram.bmp|center|thumb|400px|Figure 25: 'Activity diagram']]</center>
+<center>[[File:ActivityDiagram.bmp|center|thumb|600px|Figure 42: Activity diagram]]</center>
-The ''activity diagram'' is preferable used to specify the black box behavior of a use case instead of using plain text. It may also be used to specify a flow chart for a class operation.''Activity diagrams'' are owned by use cases or classes.
+The ''activity diagram'' is preferably used to specify the black box behavior of a use-case instead of using plain text. It may also be used to specify a flow chart for a class operation.''Activity diagrams'' are owned by use-cases or classes.
-To create an ''activity diagram'', right click on the owning use case or class and select '''New Diagram &gt; Create a new Activity Diagram''' from its context menu.
+To create an ''activity diagram'', right click on the owning use-case or class and select '''New Diagram &gt; Create a new Activity Diagram''' from its context menu.
-===== 7.4.1.1.3 Interaction diagrams =====
Interaction diagrams are used to specify how different modeling elements interacts. Here two types are described, the ''sequence diagram'' and the ''communication diagram''.
-====== 7.4.1.1.3.1 Sequence diagram ======
-A ''sequence diagram'' describes the interactions between elements as a time ordered set of messages. One or several ''sequence diagrams'' are used to specify the white box view of a use case.
+A ''sequence diagram'' describes the interactions between elements as a time ordered set of messages. One or several ''sequence diagrams'' are used to specify the white box view of a use-case.
Sequences involving collaborating elementsThe main elements in a ''sequence diagram'' are:
@@ -562,17 +820,16 @@ Sequences involving collaborating elementsThe main elements in a ''sequence diag
* Messages
* Combined fragments
-<center>[[File:SequenceDiagram.bmp|center|thumb|400px|Figure 26: 'Sequence diagram']]</center>
+<center>[[File:SequenceDiagram.bmp|center|thumb|600px|Figure 43: Sequence diagram]]</center>
-The example (Figure 26) describes Interaction1, two objects (instances of Class1 and Class2) are created and interacts by messages. The time goes down along the life lines. In the bottom, there is a combined fragment of type "Ref" which is a reference to another interaction, Interaction2, meaning that the sequences in that interaction are executed.There are a lot of combined fragment types, e.g. type "Loop" specifies a loop, type "Alt" specifies alternatives, etc. All combined fragment types are defined in [http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1]
+The example (Figure 43) describes Interaction1, two objects (instances of Class1 and Class2) are created and interacts by messages. The time goes down along the life lines. In the bottom, there is a combined fragment of type "Ref" which is a reference to another interaction, Interaction2, meaning that the sequences in that interaction are executed.There are a lot of combined fragment types, e.g. type "Loop" specifies a loop, type "Alt" specifies alternatives, etc. All combined fragment types are defined in [http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1]
-''Sequence diagrams'' are owned by use cases or communication diagrams (see below).
+''Sequence diagrams'' are owned by use-cases or communication diagrams (see below).
-To create a ''sequence diagram'', right click on the owning use case or communication diagram and select '''New Diagram &gt; Create a new Sequence Diagram''' from its context menu.
+To create a ''sequence diagram'', right click on the owning use-case or communication diagram and select '''New Diagram &gt; Create a new Sequence Diagram''' from its context menu.
-====== 7.4.1.1.3.2 Communication diagram ======
-''Communication diagrams'' show the lines of communication among a set of objects to accomplish a specific purpose. They act as the framework for sequence diagrams and define access paths between elements. i.e. ''communication diagrams'' are used to specify a use case's white box communication channels between elements in the system.
+''Communication diagrams'' show the lines of communication among a set of objects to accomplish a specific purpose. They act as the framework for sequence diagrams and define access paths between elements. i.e. ''communication diagrams'' are used to specify a use-case's white box communication channels between elements in the system.
The main elements in a ''collaboration diagram'' are:
@@ -580,14 +837,14 @@ The main elements in a ''collaboration diagram'' are:
* Access paths
* Messages
-<center>[[File:CommunicationDiagram.bmp|center|thumb|400px|Figure 27: 'Communication diagram']]</center>
+<center>[[File:CommunicationDiagram.bmp|center|thumb|600px|Figure 44: Communication diagram]]</center>
-The example (Figure 27) describes access paths between objects and which messages are passed in these paths.''Communication diagrams'' are owned by use cases.
+The example (Figure 44) describes access paths between objects and which messages are passed in these paths.''Communication diagrams'' are owned by use-cases.
-To create a ''communication diagram'', right click on the owning use case and select '''New Diagram &gt; Create a new Communication Diagram''' from its context menu.
+To create a ''communication diagram'', right click on the owning use-case and select '''New Diagram &gt; Create a new Communication Diagram''' from its context menu.
-==== 7.4.1.2 Diagrams related to Classes ====
+==== 7.4.7.2 Diagrams related to classes ====
When modeling classes, any or all of the following diagrams may be used:
@@ -597,7 +854,6 @@ When modeling classes, any or all of the following diagrams may be used:
As described above, activity diagrams may also be used to specify a flowchart for a class operation.
-===== 7.4.1.2.1 Class diagram =====
''Class diagrams'' depict static views of the system. A ''class diagram'' may represent all or part of the class structure of a system. Typically there are many ''class diagrams'' in a model. Usually one or many ''class diagrams'' are used to specify the inheritance structure in the system. ''Class diagrams'' may also be used to define dependency rules between packages.
@@ -607,15 +863,14 @@ The main elements in a ''class diagram'' are:
* Classes
* Relationships
-<center>[[File:ClassDiagram.bmp|center|thumb|400px|Figure 28: 'Class diagram']]</center>
+<center>[[File:ClassDiagram.bmp|center|thumb|600px|Figure 45: Class diagram]]</center>
-The example (Figure 28) shows a ''class diagram'' used to specify an inheritance structure between classes. Note: The ''Generalization'' relationship and the indication of the inherited attributes in Class1 and Class2.
+The example (Figure 45) shows a ''class diagram'' used to specify an inheritance structure between classes. Note: The ''Generalization'' relationship and the indication of the inherited attributes in Class1 and Class2.
''Class diagrams'' are owned by ordinary UML packages or model packages.
To create a ''class diagram'', right click on the owning package and select '''New Diagram &gt; Create a new Class Diagram''' from its context menu.
-===== 7.4.1.2.2 Composite structure diagram =====
The ''composite structure diagram'' specifies structure classes contents, i.e. how the class uses ''roles'' (instances from other classes) and how they are connected to fulfill its responsibility.
@@ -625,15 +880,14 @@ The main elements in a ''composite structure diagram'' are:
* Ports (interface objects)
* Connectors
-<center>[[File:CompositeStructure.bmp|center|thumb|400px|Figure 29: 'Composite structure diagram']]</center>
+<center>[[File:CompositeStructure.bmp|center|thumb|600px|Figure 46: Composite structure diagram]]</center>
-The example (Figure 29) shows a ''composite structure diagram'' used to specify the structural contents of Class4. Note: Class4 uses one instance (class2) of Class2 and one instance (class3) of Class3 and they are connected between Class2/Port1 and Class3/Port2.
+The example (Figure 46) shows a ''composite structure diagram'' used to specify the structural contents of Class4. Note: Class4 uses one instance (class2) of Class2 and one instance (class3) of Class3 and they are connected between Class2/Port1 and Class3/Port2.
''Composite structure diagrams'' are owned by structured classes.
To create a ''composite structure diagram'', right click on the owning class and select '''New Diagram &gt; Create a new Composite Structure Diagram''' from its context menu.
-===== 7.4.1.2.3 State machine diagram =====
The ''state machine diagram'' specifies the behavior of a class. It is used when the class is state rich, i.e. has an event driven behavior. If the class has no states, activity diagrams can be used.
@@ -645,121 +899,28 @@ The main elements in a ''state machine diagram'' are:
* Triggering events
* Pseudo states, e.g. initial, final and choice points
-<center>[[File:StateDiagram.bmp|center|thumb|400px|Figure 30: 'State machine diagram']]</center>
+<center>[[File:StateDiagram.bmp|center|thumb|600px|Figure 47: State machine diagram]]</center>
-The example (Figure 30) shows a ''state machine diagram'' that has an initial pseudo state, three states and transitions between them. On each transition (except for initialize), a ''triggering event'' is specified, which defines the event that makes the transition to be taken. Transitions and states may have effect code, which specify detailed behavior to be executed when an associated transition is taken.
+The example (Figure 47) shows a ''state machine diagram'' that has an initial pseudo state, three states and transitions between them. On each transition (except for initialize), a ''triggering event'' is specified, which defines the event that makes the transition to be taken. Transitions and states may have effect code, which specify detailed behavior to be executed when an associated transition is taken.
''State machine diagrams'' are owned by classes.
To create a ''state machine diagram'', right click on the owning class and select '''New Diagram &gt; Create a new State Machine Diagram''' from its context menu.
-=== 7.4.2 Model elements ===
-
-When doing ordinary UML modeling in Papyrus, the most common modeling elements are packages, use cases, actors and classes.
-
-Modeling elements can be added in some appropriate diagram type described in section [[#7.4.1_Diagrams|Diagrams]] or just added direct in the Model Explorer, using the context menu of the owning modeling element.
-
-==== 7.4.2.1 Package ====
-
-A ''package'' is a general UML grouping element, comparable to a folder in Windows or a directory in Unix. It is used to bring order in the model. A ''package'' may have a semantical meaning (e.g. representing a subsystem) and then a UML stereotype, defined in a applied UML Profile, may be added to it (e.g. &lt;&lt; subsystem &gt;&gt;). To create a new ''package'', right click on the owning element, e.g. the model package and from the context menu select '''New Child &gt; Create a new Package'''
-
-[[Image:NewPackage.bmp|Figure 31: Create a new ''Package']]
-
-==== 7.4.2.2 Use Case ====
-
-A ''use case'' is a functionality in the system. A ''use case'' is a model of the dialogue between actors and the system. It should return a result of measurable value to at least one actor. A ''use case'' is initiated by an actor to invoke a certain functionality in the system.
-A ''use case'' is a complete and meaningful flow of events.
-Taken together, all ''use cases'' constitute all possible ways of using the system.
-
-To create a new ''use case'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new UseCase'''
-
-[[Image:NewUseCase.bmp|Figure 32: Create a new ''use case'']]
-
-==== 7.4.2.3 Actor ====
-
-An ''actor'' is something external to the system, but interacts with it. An ''actor'' may be a human being or another system. It may be active or passive. An ''actor'' interacts (active ''actor'') or receive (passive ''actor'') information from one or several use cases.
-
-To create a new ''actor'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new Actor'''
-
-[[Image:NewActor.bmp|Figure 33: Create a new ''actor'']]
-
-==== 7.4.2.4 Class ====
-
-A ''class'' fulfills all its responsibilities through its attributes, operations and relationships.
-
-Collectively attributes define the structure of a ''class''. A class may have any number of attributes or none. Attributes are typically implemented as variables. An attribute has a type, which tells us what kind of attribute it is. Typical types of attributes are integer, Boolean, real, and enumeration. These types are called primitive types. More complex types are defined by other ''classes''.
-
-Collectively operations define the behavior of the ''class''. A ''class'' may have any number of operations or none. Operations are implemented as functions or procedures.
-
-To create a new ''class'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new Class'''
-
-[[Image:NewClass.bmp|Figure 34: Create a new ''class'']]
-
-===== 7.4.2.5.1 Attributes on Classes =====
-
-When a ''class'' is created, ''attributes'' can be added to it by using the context menu of the ''class''. To create a new ''attribute'' on the a ''class'' select '''New Child &gt; Create a new Property''' from its context menu.
-
-[[Image:NewAttribute.bmp|Figure 35: Create a new ''attribute'']]
-
-The visibility, type and default value of the attribute are set in the properties view when the attribute is selected.
-
-===== 7.4.2.5.2 Operations on Classes =====
-
-When a ''class'' is created, ''operations'' can be added to it by using the context menu of the ''class''. To create a new ''operation'' on the a ''class'' select '''New Child &gt; Create a new Operation''' from its context menu.
-
-[[Image:NewOperation.bmp|Figure 36: Create a new ''operation'']]
-
-The visibility, arguments and return type of the operation are set in the properties view when the operation is selected.
-
-=== 7.4.3 Relationships ===
-
-There are different types of relationships that can be used in diagrams, hence in the model between different modeling elements.
-
- [[Image:Relationships.bmp|center|thumb|300px]]
-
-Navigability can be unidirectional or bidirectional for ''Association'', ''Aggregation'' and ''Composition''.
-
-''Association'' specifies peer-to-peer relationships between model elements, e.g. if a Class-x has an attribute of type Class-y, it can be viewed in a class diagram as and ''Association'' between Class-x and Class-y.
-
-''Aggregation'' is used to model a whole/part relationship between model elements. The part element can exist without the whole. ''Aggregation'' causes the generated code to contain the aggregate either by reference or by value, depending on the details of the relationship. E.g. to model an aggregation, the aggregate (Department) has an aggregation association to its constituent parts (Employee). A hollow diamond is attached to the end of an association path on the side of the aggregate (the whole) to indicate aggregation.
-
-''Composition'' is an aggregation with strong ownership, i.e. when the container is destroyed, all of its composite objects are destroyed as well.
-
-''Dependency'' is a relationship in which one model element uses another. ''Dependency'' may exist between classes if a message is sent from one class to the other or if one class mentions the other as a parameter to an operation. ''Dependency'' may exist between packages if one package is dependent on another.
-
-A ''Dependency'' relationship causes a class to be generated with inclusions or references to another class.
-
-A ''Generalization'' relationship causes a class to be generated as a subclass of another class.
-
-The ''Realizes'' relationship specifies that, e.g. an implementation realizes a specification. The ''Realizes'' relationship does not affect the code.
-
-To create a relationship between two modeling elements, use the tool palette in the diagram editor, e.g. to create an ''Association'' between two classes, select the ''Association'' tool in the tool alette, click on the source element and then click on the destination element as described in figure 37.
-
-[[Image:ClassDiagramEditorNewAss.bmp|center|thumb|500px|Figure 37: Create a new ''Association'']]
-
-
-In the ''Edges'' drawer in the tool palette, all available relationships are shown. To create a ''Generalization'' relationship, select the ''Generalization'' tool from the tool palette and follow the same procedure as described.
-
-The ''Aggregation'' and the ''Composition'' relationships are a special kind of an ''Association'' relationship. To create any of these, an ''Association'' relationship needs first to be created. Then select the created ''Association'' and in the properties view, change the ''Aggregation'' field at the appropriate end of the ''Association'' to ''shared''(if an ''Aggregation'' is desired) or to ''composite'' (if a ''Composition'' is desired). Figure 38 shows how to do it.
-
-[[Image:ClassDiagramEditorNewAgg.bmp|center|thumb|500px|Figure 38: Create a new ''Association'']]
-
-When the ''Association'' is created, the ''Aggregation'' field is set to ''none'' by default. When doing the change at the destination end (as in figure 38), the diamond shows up at the source end of the relationship.
-
== <div id="UMLRTmodeling">7.5 UML RT modeling</div> ==
-When creating models, UML is used. UML is very general and provides possibilities to profile the basic UML in order to efficiently use it for a specific domain. When using UML for RT modeling with Capsules and Protocols, the UML RT profile is applied. When a profile is applied, it can be viewed as Papyrus is specialized. There is a specific use case of Papyrus to develop UML profiles and when doing so, a domain specific modeling language is defined. This use case is described in section [[#7.10_UML_profiling |UML profiling]] in this user guide.
+When creating models UML is used. Since UML is general-purpose modeling language in the field of software engineering, it is possible to adapt UML to specific domains. This is done by creating and applying UML profiles. When using UML for RT modeling with Capsules and Protocols, the UML RT profile is applied. When a profile is applied we can say that Papyrus has been specialized. There is a specific use-case in Papyrus to develop UML profiles and when doing so a domain specific modeling language is defined. This use-case is described in section [[#7.10_UML_profiling |UML profiling]] in this user guide.
=== 7.5.1 Additional modeling elements ===
-==== 7.5.1.1 Capsule Class ====
+==== 7.5.1.1 Capsule class ====
-==== 7.5.1.2 Protocol Class ====
+==== 7.5.1.2 Protocol class ====
-=== 7.5.2 Using C in a model ===
+=== 7.5.2 Using C++ in a model ===
-=== 7.5.3 C service library ===
+=== 7.5.3 C++ service library ===
==== 7.5.3.1 Sending messages ====
@@ -771,9 +932,7 @@ When creating models, UML is used. UML is very general and provides possibilitie
=== 7.5.7 Using external libraries ===
-=== 7.5.8 Running the application ===
-
-=== 7.5.9 Model components ===
+=== 7.5.8 Running the system ===
== <div id="Papyrusinateamenvironment">7.6 Papyrus in a team environment</div> ==
@@ -814,4 +973,10 @@ To report bugs, suggest improvements, view the status of the Papyrus project, di
* Proposals for Papyrus improvements
* [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Modeling&product=MDT.Papyrus&component=Core&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=exact&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse%20same%20sort%20as%20last%20time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Bugzilla_to_report_bugs]
-= 9 References = \ No newline at end of file
+= 9 References =
+# [http://www.eclipse.org/ eclipse.org]
+# [http://www.eclipse.org/modeling/emf/ EMF model]
+# [http://www.eclipse.org/downloads/ Eclipse download page]
+# [http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1]
+# [http://www.omg.org/spec/SysML/ System Modeling Language]
+# [http://www.omg.org/omgmarte/Specification.htm/ Modeling and Analysis of Real-Time and Embedded systems] \ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.pdf b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.pdf
new file mode 100644
index 00000000000..9d66e352db6
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.pdf
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.txt b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.txt
deleted file mode 100644
index e8d6e14a9b0..00000000000
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/PapyrusStarterGuide.txt
+++ /dev/null
@@ -1,817 +0,0 @@
-
-= 1 Overview =
-
-Papyrus is an environment for editing any kind of [http://www.eclipse.org/modeling/emf/ EMF model], particularly supporting UML 2 ([http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1] ) and related modeling languages such as SysML ([http://www.omg.org/spec/SysML/ System Modeling Language] ) and MARTE ([http://www.omg.org/omgmarte/Specification.htm/ Modeling and Analysis of Real-Time and Embedded systems] ). Papyrus also offers very advanced support of UML profiles that enables users to define editors for DSLs (Domain Specific Languages) based on the UML 2 standard.
-
-Papyrus is a collection of plug-ins and features on top of the Eclipse framework. For more information about Eclipse, please go to the Eclipse web site [http://www.eclipse.org/ eclipse.org]. Some of the terminology used in this Papyrus user guide are basic Eclipse concepts and briefly described here. To get more information about the Eclipse concepts, please visit the ''Workbench User Guide'' by selecting '''Help &gt; Help Contents''' from within Eclipse.
-
-== 1.1 Table of Contents ==
-
-__TOC__
-
-= 2 Introduction =
-
-Papyrus is built on the extensible Eclipse framework and is an implementation of the OMG (Object Management Group) specification [http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1]. Papyrus is a comprehensive UML modeling environment, where many diagrams can be used to view different aspects of a system. Behind all diagrams, there is a model where all modeling elements, used in these diagrams, are kept. The model keeps the consistency between all diagrams.
-
-UML diagrams can help system architects and developers understand, collaborate on and develop an application. Architects and managers can use diagrams to visualize an entire system or project and separate applications into smaller components for development.
-
-System developers can use diagrams to specify, visualize, and document applications, which can increase efficiency and improve their application design.
-
-Since UML is very general, it is possible to adapt UML to specific domains. This is done by creating and applying UML profiles. Papyrus is a complete UML modeling environment and can also be used to develop UML profiles.
-
-== 2.1 Legend ==
-
-In this user guide, bold text is used for menu selections, e.g. '''Help &gt; Welcome''' means form the '''Help''' item on the main menu, select the '''Welcome''' item.
-
-A context menu is the pop up menu that appears when right clicking on something, e.g. right click on a class select '''New Child &gt; Create a new Operation''', will create a new operation on the class, using the class' context menu.
-
-When a text should be typed in, it is indicated by inline code, e.g. <code>this text should be typed in</code>.
-
-Fields in wizards, pop up windows, different editors, radio buttons and check boxes are indicated by italic text, e.g. set the field ''Name'' to <code>MyClass</code>.
-
-= <div id="Installation">3 Installation</div> =
-
-It is a several step process to install Papyrus and its features. The Eclipse Standard must first be installed and when that is done, Papyrus is installed on top of Eclipse Standard.
-
-== 3.1 Install Eclipse Standard ==
-
-Eclipse Standard is installed from the [http://www.eclipse.org/downloads/ Eclipse download page]. On the download page select ''Eclipse Standard ....'' to install. Follow the install wizard to complete the installation.
-
-== 3.2 Install basic Papyrus ==
-
-When Eclipse Standard is installed, go to '''Help &gt; Install New Software''' and type in <code>http://download.eclipse.org/releases/kepler/</code> in the field named ''Work with:''.
-
-'''Note!''' When this user guide was written, the Kepler release of Eclipse was the latest. Select the latest official Eclipse release.
-
-'''Note!''' In some industrial environments, a proxy has to be used instead of this type of direct URL to the Eclipse web-site.
-<center>[[File:InstallNewSoftware.bmp|thumb|center|thumb|564px|Figure 1: Install New Software wizard]]</center>
-
-In the ''Name'' column of the wizard, scroll down to ''Modeling'' and expand to the next level. Under ''Modeling'', select ''Papyrus UML'' and follow the installation wizard to complete the installation.
-
-When Eclipse is restarted, the environment is now ready for UML modeling.
-
-== 3.3 Additional installation for Papyrus UML RT modeling ==
-
-After installation of the basic Papyrus feature, go to '''Help &gt; Install Papyrus Additional Components'''. In the wizard that pops up, select the needed additional Papyrus components. To be able to do UML RT modeling, the ''Real Time'' component is needed. It is also recommended to install the ''Diagram Stylesheets'' and ''Papyrus Compare'' components. Follow the installation wizard to complete the installation.
-
-<center>[[File:InstallPapyrusComp.bmp|thumb|center|thumb|437px|Figure 2: The Install Papyrus Additional Components wizard]]</center>
-
-= 4 Eclipse =
-
-Since Papyrus is built on the Eclipse framework, most of its look and feel is inherited from Eclipse.
-
-The Eclipse framework has a plug-in architecture, where plug-ins can be grouped into features. Features and plug-ins can be added to an existing Eclipse installation.
-
-== 4.1 Architecture ==
-
-The plug-in architecture applies also for all subsystems. A plug-in is the smallest unit of Eclipse Platform functionality that can be developed and delivered separately. Usually, a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins. Except for a small kernel known as the Platform Runtime, all of the Eclipse Platform’s functionality is located in plug-ins. Plug-ins can be grouped into features.
-
-<center>[[File:EclipseArchitecture.bmp|center|thumb|500px|Figure 3: The Eclipse architecture]]</center>
-
-Plug-ins are coded in Java. A typical plug-in consists of Java code in a JAR (Java Archive) library, some read-only files, and other resources such as images, Web templates, message catalogs, native code libraries, and so on. Some plug-ins do not contain code at all. One such example is a plug-in that contributes online help in the form of HTML pages. A single plug-in’s code libraries and read-only content are located together in a directory in the file system, or at a base URL on a server. There is also a mechanism that permits a plug-in to be synthesized from several separate fragments, each in their own directory or URL. This is the mechanism used to deliver separate language packs for an internationalized plug-in.
-
-Each plug-in has a manifest file declaring its interconnections to other plug-ins. The interconnection model is simple: a plug-in declares any number of named extension points, and any number of extensions to one or more extension points in other plug-ins.
-
-<center>[[File:Feature-Plug-in.bmp|center|thumb|100px|Figure 4: Plug-ins and Features]]</center>
-
-== <div id="Workspace">4.2 Workspace</div> ==
-
-The workspace is located in the file-system and is the place where Eclipse resources (files, folders and projects) are stored. When Eclipse is started, a pop-up window appears, where a workspace should be selected. One instance of Eclipse is connected to one workspace.
-
-<center>[[File:WorkspacePopup.bmp|center|thumb|400px|Figure 5: Pop-up window to select the workspace]]</center>
-
-In the file system all resources are stored in the selected workspace and in the same hierarchical structure as in the ''Project Explorer''.
-
-== 4.3 Resources ==
-
-Resources is a collective term for the projects, folders, and files that exist in the workbench. The resources are stored in the workspace, where the projects are on the first level. Inside a project, there are files and folders in the same hierarchical structure as in the ''Project Explorer'' and ''Model Explorer''.
-
-Files appear in the file system as files and folders are Unix directories or Windows folders and may contain other files and folders. Each time a file is saved, a copy is saved, which makes it possible to replace the current file with a previous edit or even restore a deleted file. Earlier versions of a file can be compared to the contents of all the local edits. Each edit in the local history is time stamped, i.e. is uniquely represented by the date and time the file was saved.
-
-Projects can be viewed as the top level folder in the file system under the workspace. In Eclipse there are different types of projects, e.g. Model, C/C or Java projects and they are the top level resource in the ''Project Explorer''. Projects can be closed and opened in the ''Project Explorer''.
-
-== <div id="Workbench">4.4 Workbench</div> ==
-
-The workbench is the Eclipse user interface and is used to navigate, view, and edit resources in a workspace, i.e. the workbench is the Eclipse IDE’s application window. The workbench presents one or more editors and ''views'' that are gathered into adjustable groups (''perspectives'').
-
-The first time Eclipse is started, after the installation, a ''Welcome'' page is presented. Take a few minutes to explore the product overview and getting started information that is located here.
-
-<center>[[File:WelcomePage.bmp|center|thumb|500px|Figure 6: The Eclipse welcome page]]</center>
-
-To return to the ordinary workbench, just click on the workbench icon up to the right. When starting Eclipse, subsequent times, the workbench appears directly. To visit the welcome page at any time, just select '''Help &gt; Welcome'''.
-
-The title bar of the workbench window and the little Papyrus icon to the right indicates which ''perspective'' is active. In this example, the Papyrus ''perspective'' is in use. The ''Project Explorer'' and the ''Model Explorer, Outline, Properties'' views, etc. are open, along with a ''Class Diagram'' editor and its tool palette.
-
-<center>[[File:Workbench.bmp|center|thumb|600px|Figure 7: The Papyrus perspective in the workbench]]</center>
-
-It is easy to toggle between perspectives by clicking on some shown ''perspective'' in top of the right hand corner or open a new one by clicking on the ''Open Perspective'' icon [[File:IkonOpenPerspective.png]] and browse to the ''perspective'' to open. It is also possible to reorganize a ''perspective'', open/close ''views'', customize menus, etc. and then save the ''perspective'' with a new name by '''Window &gt; Save Perspective As ...'''.
-
-=== 4.4.1 Views ===
-
-''Views'' and editors are the main visual entities that appear in the workbench. Any given ''perspective'' can contain multiple editors and a number of surrounding ''views'' that provide context.''Views'' provide different ways to visualize, navigate and edit the resources in the Eclipse workspace. ''Views'' can be single or stacked on top of each other.
-
-''Views'', including editor views, can be resize, moved, detached. In addition, a ''view'' can be maximized to cover the entire workbench by double-clicking on its tab. By double-clicking once more, it will return to its original size. Some ''views'' has a view specific menu, e.g. ''Project Explorer'' view, where some specific view settings could be done.
-
-To add a new ''view'' to the active ''perspective'', use '''Window &gt; Show View'''and if the desired ''view'' does not appear on top of the pop-up menu, select '''Other''', which opens up a ''view'' browser, where all available ''views'' are organized in different categories.
-
-==== 4.4.1.1 Single views ====
-
-In the workbench figure, above, several single views appears, e.g. ''Outline, Class Diagram'' editor, ''Help, Project Explorer'' and ''Model Explorer'' views. The ''single view'' has only one tab with the view name. By draging a ''single view'' tab and release it on another ''single view'' tab, ''stacked views'' are created.
-
-==== 4.4.1.2 Stacked views ====
-
-In the workbench figure, above, also ''stacked views'' appear, e.g. ''Properties'' and ''Model Validation'' views. To select the one that should be on top of the stack, just click on its tab and it becomes visible. By selecting a ''stacked view'' and drag it besides another view in the workbench, a ''single view'' will appear.
-
-== 4.5 Preferences ==
-
-To customize the settings for the Eclipse workbench and the installed features, the preference window is used. Use '''Windows &gt; Preferences''' to open it, e.g. under '''General &gt; Keys''' in the preference window there are shortcuts and keys defined for the user interface. Here they can be redefined or own sets could be defined.
-
-<center>[[File:Preferences.bmp|center|thumb|500px|Figure 8: The preference window]]</center>
-
-The preference window pages can be searched using the filter function. To filter by matching the page title, simply type the name of the page and the available pages will be presented below.
-
-The filter also searches on keywords. By the history controls (the left, right and drop-down arrows up in the right corner of the preference window) it is possible to navigate through previously viewed pages. To step back or forward several pages at a time, click the drop-down arrow and a list of the most recently viewed preference pages are displayed.
-
-== 4.6 Import and Export ==
-
-Projects can be shared between workspaces by using project import and export, which are done through wizards. To open the import wizard, use '''File &gt; Import''' and in several steps select what, where from and if it should be imported as a copy or just referenced. To export resources, There are also an export wizard, which is opened by '''File &gt; Export''' and select details about what should be exported, if it should be compressed and where to export it to.
-
-{|
-|
-[[File:ImportWiz.bmp|center|thumb|300px|Figure 9: Import wizard]]
-|
-[[File:ExportWiz.bmp|center|thumb|300px|Figure 10: Export wizard]]
-|}
-
-When importing a project into the used workspace, it can be copied by checking the box ''Copy ...'' in the import wizard. If this check box is unchecked, there will just be a reference to the other workspace and when editing that project, it will be edited in its original place. Be aware of that when doing so, several instances of Eclipse may edit the same resource.
-
-When exporting a project, browse to the place where to export it to name it and select if and how compression should be used.
-
-= 5 Modeling =
-
-Papyrus is a comprehensive UML modeling environment, where many diagrams can be used to view different aspects of a system. Behind all diagrams, there is a model where all modeling elements, used in these diagrams, are stored. The model keeps the consistency between all diagrams.
-
-A model is the collection of all the modeling elements, definitions and relationships that compose a software system. Papyrus enables the creation, viewing and manipulation of UML diagrams as specified in the [http://www.omg.org/spec/UML/2.4.1/ UML 2 specification].
-
-The model defines every element, representing some part of the system. Multiple model diagrams can reference an element many times. Each of the different diagrams can view a different aspect of the system.
-
-The model is the basis of the diagrams and keep the diagrams consistent. The diagrams are stored in the model's hierarchical structure. Some are owned by a modeling element like a class and some are just organized into some packages (a.k.a folders in basic Eclipse projects).
-
-== 5.1 Model and diagrams ==
-
-The model is the basis of all diagrams and keeps the consistency between the diagrams. The model is a collection of definitions of elements that compose the system and the relationships between them. Diagrams can be used to view subsets of the underlying model and from various view points. A model of a system may require many different diagrams to represent different views of the system for different project stakeholders.
-
-In Papyrus, you can open and add diagrams to the model in the ''Model Explorer'' view. The ''Models Explorer'' shows diagrams in their logical place within the model.
-
-The visual representation of a system that diagrams provide can offer both low-level and high-level insights into the concepts and design of an application.
-
-= 6 Tutorials =
-
-The tutorials are focused on selected topics regarding the use of Papyrus and contains step by step instructions on how to create and manipulate the workbench and models.
-
-== 6.1 Getting started ==
-
-This tutorial is about to understand the workbench environment and the basic Eclipse features.
-
-=== 6.1.1 Exploring perspectives ===
-
-This part demonstrates the differences between the ''Papyrus'' and the ''Resource'' perspectives and also how to customize the ''Resource'' perspective.
-
-==== 6.1.1.1 Exploring the ''Papyrus'' perspective ====
-
-Explore the default menu, toolbar, and views in the ''Papyrus'' perspective.
-
-# To switch to the ''Payrus'' perspective, click '''Window &gt; Open Perspective &gt; Other'''. Then choose the ''Papyrus'' perspective. (Notice the workbench title bar and perspective bar reflect that the ''Papyrus'' perspective is active. Notice also the main menu items, toolbar buttons, and views that is visible in this perspective.)
-# Click '''File &gt; New''' and notice that the menu contains the items ''Papyrus Project'' and ''Papyrus Model'' among other items.
-# Click '''Window &gt; Show View''' and notice that the menu contains the items ''Model Explorer'', ''Model Validation'' and more.
-
-==== 6.1.1.2 Exploring and customizing the Resource perspective ====
-
-Explore the default menu, toolbar, and views in the ''Resource'' perspective and customize a menu.
-
-# To switch to the ''Resource'' perspective, click '''Window &gt; Open Perspective &gt; Other'''. Then choose the ''Resource'' perspective. Notice that the workbench title bar and perspective bar reflect that the ''Resource'' perspective is active. (Notice the main menu items, toolbar buttons, and views visible in this perspective)
-# Click '''File &gt; New''' and notice that there are no Papyrus items in the menu.
-# Click '''Window &gt; Show View''' and notice that the menu does NOT contain the items ''Model Explorer'' and ''Model Validation''.
-# Click '''Window &gt; Customize Perspective'''. Ensure that the workbench title bar and perspective bar reflect that the ''Resource'' perspective is active.
-# In the ''Customize Perspective – Resource'' pop up window, select the ''Shortcuts'' tab and select '''Show View''' from the ''Submenus'' combo box.
-# Clear all check boxes in the ''Shortcut Categories'' list.
-# Click ''General''(not check the check box) in the ''Shortcut Categories'' list, select the check box next to ''Project Explorer'' in the ''Shortcuts'' list, and click ''OK''.
-# Click '''Window &gt; Show View''' and notice the menu now just contains the ''Project Explorer'' item.
-
-=== 6.1.2 Creating a project, folder and files ===
-
-In this section a new project, folder and files will be created in the ''Resource'' perspective.
-
-==== 6.1.2.1 Creating a new general project ====
-
-Create a new project in the ''Resource'' perspective by completing these steps:
-
-# If necessary switch to the ''Resource'' perspective by clicking on '''Window &gt; Open Perspective &gt; Other'''. Then choose the ''Resource'' perspective. If the ''Resource'' perspective already is active, click on '''Window &gt; Reset Perspective...''' to get back to its default configuration.
-# Click '''File &gt; New &gt; Project'''.
-# In the ''New Project'' wizard, name the project <code>My Project</code> and click ''Finish''.
-
-==== 6.1.2.2 Creating a new folder ====
-
-Create a folder in the project:
-
-# Right-click on ''My Project'' in the ''Project Explorer'' and select '''New &gt; Folder'''.
-# Type <code>Text Files</code> in the the field ''Folder name'', and then click ''Finish''.
-
-==== 6.1.2.3 Creating and editing a new file ====
-
-Create a file in the folder:
-
-# In the ''Project Explorer'', right-click on the ''Text Files'' folder and select '''New &gt; File'''.
-# In the ''New File'' wizard, ensure that ''My Project/Text Files'' is the parent folder. Type <code>My File</code> as the file name and click ''Finish''. (Notice that a text editor opens in the editing view for the created resource)
-# Enter any text into the editor view for ''My File''. Notice the asterisk (*) next to the file name indicates unsaved changes.
-# Press ''Ctrl S'' to save the work. Notice that the asterisk disappears.
-
-==== 6.1.2.4 Creating another file ====
-
-Create another file in the ''Text Files'' folder, using the workbench menu this time.
-
-# On the workbench menu, click '''File &gt; New &gt; File'''.
-# In the ''New File'' wizard, expand ''My Project'' and then select ''Text Files'' as the parent folder.
-# Type <code>My Other File</code> as the file name and click ''Finish''.
-# Reviewing the contents of the ''Project Explorer'' view, which should be like this
-
-<center>[[File:MyProject.bmp|center|thumb|200px]]</center>
-
-=== 6.1.3 Exploring editors and views ===
-
-This section demonstrates how to manipulate views and editors.
-
-==== 6.1.3.1 Maximizing and restoring an editor ====
-
-Maximize one of the editors to expand the viewable area:
-
-# Double-click the file name on the editor tab for ''My File''.
-# Double-click the file name again to restore the editor to its original size.
-
-==== 6.1.3.2 Tiling and restacking the editors ====
-
-Currently, the editors are stacked one in front of the other. Try tiling them horizontally and vertically:
-
-# Click the ''My Other File'' editor tab and drag it to the bottom of the editor pane. Colored frames indicates how the views will be tiled. Drop the editor and notice that the editors are tiled horizontally.
-# Drag the ''My Other File'' editor tab to the left of the editor pane and release it. Notice that the editors are tiled vertically.
-# Restack the editors by dragging one of the editor tabs on top of the other.
-
-==== 6.1.3.3 Organizing views ====
-
-Try moving a view:
-
-# Drag the title bar of the ''Outline'' view onto the title bar of the ''Project Explorer''.
-# Experiment by dragging the title bar of the ''Outline'' view to various locations within the workbench.
-# Return the ''Outline'' view to its original place to the lower left of the workbench. It is always possible to return to the default configuration of the active perspective by clicking on '''Windows &gt; Reset Perspective...'''
-
-==== 6.1.3.4 Using view menus ====
-
-Some views has view menus, e.g. ''Project Explorer'' view, which is indicated by a down arrow in the upper-right corner of the view. Click this down arrow of the ''Project Explorer'' view and review the pull-down menu options specific for this view.
-
-==== 6.1.3.5 Closing and opening views ====
-
-If a view does not appear in the workbench, it can be open by using the '''Window''' menu:
-
-# Close the ''Project Explorer'' view by right-click on the ''Project Explorer'' view tab and select '''Close'''.
-# Click '''Window &gt; Show View &gt; Other''' and type <code>Project Explorer</code> in the filter text box.
-# Select ''Project Explorer'' and click ''OK'' which opens the view again.
-
-=== 6.1.4 Exporting and importing a project ===
-
-This section demonstrates how projects can be shared between users and workspaces using the ''export'' and ''import'' feature.
-
-==== 6.1.4.1 Exporting a project ====
-
-Export ''My Project'' to a compressed file:
-
-# Select '''File &gt; Export...''' from the workbench menu.
-# In the ''Export'' wizard, expand '''General''', and then select '''Archive File'''. Click ''Next''.
-# Check the check box next to ''My Project'' in the resource list.
-# Click ''Browse'' to specify an export destination in the ''To archive file'' field. Note the available options for archive formats.
-# In the ''Browse'' window, select the ''Desktop'' as the destination folder and type <code>My Project</code> as the file name. Click ''OK''.
-# In the ''Export'' wizard, click ''Finish'' to perform the export process.
-# View the desktop and notice the new compressed (.zip) file.
-
-==== 6.1.4.2 Removing the project from the workspace ====
-
-Remove ''My Project'' from the workspace:
-
-# Right-click ''My Project'' in the ''Project Explorer'' and select '''Delete''' from the context menu.
-# In the ''Delete Resources'' pop up window, make sure to check the
-
-''Delete project contents on disk'' check box. Click ''OK''. Note: If this check box is unchecked, the resource will just be deleted from the Workbench, but it will still exist in the workspace. (Notice ''My Project'' is no longer listed in the ''Project Explorer'')
-
-==== 6.1.4.3 Importing a project ====
-
-Import ''My Project'' from a compressed file:
-
-# Select '''File &gt; Import...''' from the workbench menu.
-# In the ''Import'' wizard, expand '''General''', and then select '''Existing Projects into Workspace'''. Click ''Next''.
-# Click the '''Select archive file''' radio button.
-# Click the ''Browse'' button.
-# In the ''Browse'' window, browse to the ''Desktop'' and select '''My Project.zip''' and click ''Open''.
-
-<nowiki>#In the </nowiki>''Import'' wizard, check the check box next to ''My Project'' and click ''Finish'' to perform the import process. (Notice ''My Project'' is once again listed in the ''Project Explorer'')
-
-=== 6.1.5 Conclusion ===
-
-The basic features of the Eclipse workbench have now been demonstrated.
-
-* How to view and customize perspectives.
-* How to create a project, folder and files.
-* How to manipulate editors and views.
-* How to export and import projects.
-
-== 6.2 Creating profiles ==
-
-== 6.3 Creating models ==
-
-=== 6.3.1 Use case modeling ===
-
-=== 6.3.2 Design modeling ===
-
-=== 6.3.3 RT modeling ===
-
-= 7 Papyrus =
-
-Papyrus can be used to do
-
-* General UML modeling.
-* UML RT modeling, which is described in the section [[#6.3.3_RT_modeling]] when the UML RT profile is applied.
-* SysML modeling when the SysML profile is applied.
-* MARTE modeling when the MARTE profile is applied.
-* UML profiles, which is described in the section [[#7.10_UML_profiling|UMLprofiling]] .
-
-In Papyrus, different UML profiles can be applied. When installing Papyrus, as described in section [[#3_Installation|Installation]] , also the UML, UML RT, SysML and MARTE profiles can be added. When creating a new Papyrus project, the type of Papyrus project is selected. Project types to chose from are SysML, Profile and UML.
-
-== 7.1 Papyrus resources in the workspace ==
-
-When modeling in Papyrus, three types of resources are stored in the workspace.
-{|
-|
-[[File:ModelProjResourcesFS.bmp|center|thumb|400px|Figure 11: Resources in the file system]]
-|
-[[File:ModelProjResourcesPE.bmp|center|thumb|200px|Figure 12: Resources in the Project 'Explorer']]
-|}
-* '''.di''' file persists the status of the workbench, i.e. which diagrams and views are opened, etc.
-* '''.notation''' file keeps the information about the diagrams in the model.
-* '''.uml''' file contains the UML model.
-
-Note! In this case the model is contained in three files. When working in an industrial context, the model may need to be split up into several fragments in order for several designers to work in parallel with the same model. This is described in section [[#7.6_Papyrus_in_a_team_environment|Papyrus in a team environment]] .
-
-== 7.2 The Papyrus perspective ==
-
-When Papyrus is installed a predefined perspective called ''Papyrus'' is made available. This is the perspective to use when modeling with Papyrus. The Papyrus perspective can be customized to the user needs and saved as new perspective ( see section [[#4.4_Workbench|Workbench]] ).
-
-=== 7.2.1 Project Explorer view ===
-
-The ''Project Explorer'' view is used to browse, select and manipulate resources in the workspace. Projects or working sets are the top level in this view. From the ''Project Explorer’s'' (right click on the white space) context menu, e.g. new projects can be created.
-
-<center>[[File:ProjectExpl.bmp|center|thumb|200px|Figure 13: The Project Explorer]]</center>
-
-In some views, as in this case, there is a view specific menu (indicated in Figure 13 with a red ring). Here some settings could be done for the view, e.g. if the top level should be working sets or projects.
-
-=== 7.2.2 Model Explorer view ===
-
-In the ''Model Explorer'' view, the model that has been opened in the ''Project Explorer'', can be browsed and edited. Model elements can be added by using the context menu of any existing modeling element, including the model package and packages. Diagrams can also be added by using the context menus. Existing diagrams can be opened in an appropriate editor by just double clicking on the diagram in the ''Model Explorer''.
-
-<center>[[File:ModelExpl.bmp|center|thumb|200px|Figure 14: The Model Explorer]]</center>
-
-=== 7.2.3 Editing view ===
-
-The ''Editing View'' is in the middle part of the workbench and here opens different types of editors, depending on the type of resource to edit, e.g. if a class diagram is opened, the class diagram editor will be started in the ''Editing View''.
-
-<center>[[File:EditingView.bmp|center|thumb|400px|Figure 15: The 'Editing View']]</center>
-
-How to use editors is described in section [[#7.3_Diagram_editing_in_Papyrus|Editors in Papyrus]] .
-
-=== 7.2.4 Outline view ===
-
-The ''Outline View'' is connected to the ''Editing View'' and gives an overview of what is opened in the ''Editing View''. The ''Outline View'' may be used to pan the ''Editing View'' or to select some information that will be highlighted in the ''Editing View''. The shaded area is the area that is visible in the ''Editing View''.
-
-<center>[[File:OutlineView.bmp|center|thumb|200px|Figure 16: The 'Outline View']]</center>
-
-
-=== 7.2.5 Properties view ===
-
-The ''Properties view'' is located as a stacked view at the bottom of the workbench and shows the properties of a selected modeling element. The modeling element can be selected in the Model Explorer or in a diagram. The properties are categorized under different tabs to the left in the ''Properties view''.
-
-<center>[[File:PropertiesView.bmp|center|thumb|500px|Figure 17: The 'Properties View']]</center>
-
-
-In this view the properties may be viewed and edited, e.g. rename the operation and change the visibility of the operation.
-
-=== 7.2.6 Model Validation view ===
-
-From the context menu in the ''Model Explorer'' it is possible to validate the entire model or parts of it (for more details see section [[#7.7_Model_validation|Model validation]] . All warnings and errors appear in the ''Model Validation View'', which is a stacked view together with the ''Properties View'' and the ''Search View'' at the bottom of the workbench.
-
-<center>[[File:ModelValidationView.bmp|center|thumb|500px|Figure 18: The 'Model Validation View']]</center>
-
-
-The model validation constraints are customizable and how to work with it is described in section [[#7.7_Model_validation|Model validation]] .
-
-=== 7.2.7 Search view ===
-
-It is possible to do searches on a selected resource in a specific project or in the entire workspace. When the search is finished, the result appears in the ''Search View''. Details about specifying searches is described in the [[#7.8_Searching|Searching]] section.
-
-<center>[[File:SearchView.bmp|center|thumb|500px|Figure 19: The Search View]]</center>
-
-The example in Figure 19 shows the result of a model search for ''Class1'' in the entire workspace.
-
-== <div id="EditorsinPapyrus">7.3 Diagram editing in Papyrus</div> ==
-
-To edit diagrams different editors are available in Papyrus. They have the same basic look and feel. When double clicking on some diagram in the ''Model Explorer'', the diagram opens in the editing view. An outline view and a tool palette are also opened. Creating a new diagram in the ''Model Explorer'' will also open up a diagram editor together with its tool palette and outline view.
-
-=== 7.3.1 Diagram editors ===
-
-When a diagram editor is opened in Papyrus, three views are opened
-
-* Editing surface
-* Palette
-* Outline
-
-<center>[[File:DiagramEditorFieldsPointers.bmp|center|thumb|500px|Figure 20: Parts of a diagram editor, e.g. class diagram editor]]</center>
-
-Figure 20 shows the different parts of a diagram editor. In this case the class diagram editor has been chosen as an example. The editing surface is where the diagram editing is taken place. The outline view gives an overview of the entire diagram. The blue shaded part in the outline view shows what is visible in the editing surface. The palette contains drawers and in each drawer there are tools to be used to add different things into the diagram. In Figure 20, the Nodes drawer is closed and the edge drawer is opened. In the edge drawer there are tools to create different types of edges. By clicking on a drawer, it toggles open and close drawer.
-
-=== 7.3.2 Basic tool techniques ===
-
-Diagrams can be created in different places in the model such as they can be owned by model elements like classes or packages (a.k.a folders in basic Eclipse). Diagrams can also be placed on top of the model directly under the model package.
-
-==== 7.3.2.1 Creating diagrams ====
-
-To create a diagram, right click on the model element that should be the owner of the diagram and select '''New Diagram''' from the context menu. A new level of menu appears, displaying all types of diagrams that are available to create in this place, e.g. Figure 21 shows the available diagram types that can be created directly on top in the model package.
-
-<center>[[File:NewDiagram.bmp|center|thumb|500px|Figure 21: Available diagram types that can be created directly under the model package]]</center>
-
-'''Note!''' In Figure 21, no adaptation of Papyrus has taken place, hence all diagram types according to UML pops up. In a project environment, it is recommended that a support organization minimize the available choices in menus like this.
-
-==== 7.3.2.2 Scrolling and panning in diagrams ====
-
-Scrolling and panning in diagrams can be done by either:
-
-* Use the outline view and click (hold down) and drag the blue shaded area around, which simultaneously pans the editing surface.
-* Use the vertical and horisontal scroll bars in the editing surface.
-
-==== 7.3.2.3 Creating an element in a diagram ====
-
-Elements can be created in a diagram directly, by using a tool from the palette, e.g. to create a class
-
-# Open a class diagram
-# Open the nodes drawer
-# Click on the class tool
-# Click somewhere in the editing surface
-# Name the class
-
-If an element already exists in the model, just click on (hold down) the element in the ''Model Explorer'' and drag it to the editing surface. When releasing the mouse key, the modeling element appears in the diagram.
-
-==== 7.3.2.4 Delete and hide ====
-
-In a diagram, elements can be deleted or hided.
-
-<center>[[File:ElementContextMenuDiaDelHide.bmp|center|thumb|200px|Figure 22: Context menu of an element in a diagram]]</center>
-
-Right click on an element in a diagram and do
-
-* '''Delete Selected Element''' will delete the element from the entire model and also from all diagrams where it appears.
-* '''Hide Selected Element''' will hide the element just in this diagram.
-
-'''Note!''' These menu items have short cuts, i.e. instead of using the context menu, just select the element in the diagram and use the '''Delete''' or '''Shift-Delete''' keys
-
-==== 7.3.2.5 Formating and validating diagrams ====
-
-Diagrams can be adjusted and graphically edited to get a nicer look also using the element context menu. From the same context menu it is also possible to validate the model or parts of the model.
-
-<center>[[File:ElementContextMenuDiaFormat.bmp|center|thumb|300px|Figure 23: Example of the Format sub context menu]]</center>
-
-In Figure 23 several menu items are shown
-
-* '''Edit''' to do some basic graphical editing like copy/paste
-* '''Validation''' to validate the model partly or totally
-* '''Format''' to do some advanced formating of the diagram like adjustments, routing, etc. as shown in the sub context menu in Figure 23
-* '''Filter''' to select/unselect parts of symbols that should be visible or not
-
-== <div id="UMLmodeling">7.4 UML modeling</div> ==
-
-With Papyrus, UML models can be created. Preferably this is done using different types of diagrams. Modeling elements can be created in these diagrams or directly in the ''Model Explorer''. Diagrams are created in the ''Model Explorer'' and when doing so, a diagram editor together with its tool palette and outline view are also opened. Section [[#7.3_Diagram_editing_in_Papyrus|Diagram editing in Papyrus]] describes how to work with diagram editors.
-
-=== <div id="UMLdiagrams">7.4.1 Diagrams</div> ===
-
-UML has many different types of diagrams to capture all different aspects of a system. To capture and refine requirements, diagrams related to use cases are used. To specify the architecture and design, diagrams related to classes and packages are used, To specify the implementation, state and activity diagrams are used, etc.
-
-==== 7.4.1.1 Diagrams related to Use Cases ====
-
-When working with requirement capture and refinement, use case modeling is used and any or all of the following diagrams can be used:
-
-* Use Case diagram
-* Activity diagram
-* Interaction diagram
-** Sequence diagram
-** Collaboration diagram
-
-===== 7.4.1.1.1 Use case diagram =====
-
-A ''use case diagram'' describe how different ''Actors'' use different functionality of the system. Implicitly, it also define the system boundary, since it shows what should be performed by the system and what exists outside the system. The elements used in ''use case diagrams'' are:
-
-* '''Actors''' interact with, but are outside the system.
-* '''Use cases''' are some functionality that are performed by the system.
-* '''Relationships''' between elements.
-
-A diagram may depict all or some of the use cases of a system.
-
-<center>[[File:UCdiagram.bmp|center|thumb|400px|Figure 24: 'Use case diagram']]</center>
-
-A ''use case'' interacts with an ''actor'' and perform something useful for that ''actor''. A ''use case'' exist because of its main flow, but all odd cases and error situations have to be specified. A ''use case'' has a black box and a white box view. The black box view is preferably described in plain text or by using activity diagrams. The white box view is described by one or several sequence diagrams.
-
-All ''use cases'' together, spans the entire functionality of the system. ''Actors'', ''use cases'' and ''use case diagrams'' are owned by packages (general UML packages or model packages).
-
-To create a ''use case diagram'', right click on the owning package and select '''New Diagram &gt; Create a new UseCase Diagram''' from its context menu.
-
-===== 7.4.1.1.2 Activity diagram =====
-
-An ''activity diagram'' is a kind of behavioral diagram and shows flow of control from activity to activity. It is used to specify a use case black box view. It can also be used to specify a flow chart for a class operation.
-
-The main elements in an ''activity diagram'' are:
-
-* Initial and end states
-* Activities
-* States
-* Transitions
-* Synchronization lines
-* Decisions
-* Partitions
-
-<center>[[File:ActivityDiagram.bmp|center|thumb|400px|Figure 25: 'Activity diagram']]</center>
-
-The ''activity diagram'' is preferable used to specify the black box behavior of a use case instead of using plain text. It may also be used to specify a flow chart for a class operation.''Activity diagrams'' are owned by use cases or classes.
-
-To create an ''activity diagram'', right click on the owning use case or class and select '''New Diagram &gt; Create a new Activity Diagram''' from its context menu.
-
-===== 7.4.1.1.3 Interaction diagrams =====
-
-Interaction diagrams are used to specify how different modeling elements interacts. Here two types are described, the ''sequence diagram'' and the ''communication diagram''.
-
-====== 7.4.1.1.3.1 Sequence diagram ======
-
-A ''sequence diagram'' describes the interactions between elements as a time ordered set of messages. One or several ''sequence diagrams'' are used to specify the white box view of a use case.
-
-Sequences involving collaborating elementsThe main elements in a ''sequence diagram'' are:
-
-* Class instances (objects)
-* Life lines
-* Messages
-* Combined fragments
-
-<center>[[File:SequenceDiagram.bmp|center|thumb|400px|Figure 26: 'Sequence diagram']]</center>
-
-The example (Figure 26) describes Interaction1, two objects (instances of Class1 and Class2) are created and interacts by messages. The time goes down along the life lines. In the bottom, there is a combined fragment of type "Ref" which is a reference to another interaction, Interaction2, meaning that the sequences in that interaction are executed.There are a lot of combined fragment types, e.g. type "Loop" specifies a loop, type "Alt" specifies alternatives, etc. All combined fragment types are defined in [http://www.omg.org/spec/UML/2.4.1/ Unified Modeling Language (UML) version 2.4.1]
-
-''Sequence diagrams'' are owned by use cases or communication diagrams (see below).
-
-To create a ''sequence diagram'', right click on the owning use case or communication diagram and select '''New Diagram &gt; Create a new Sequence Diagram''' from its context menu.
-
-====== 7.4.1.1.3.2 Communication diagram ======
-
-''Communication diagrams'' show the lines of communication among a set of objects to accomplish a specific purpose. They act as the framework for sequence diagrams and define access paths between elements. i.e. ''communication diagrams'' are used to specify a use case's white box communication channels between elements in the system.
-
-The main elements in a ''collaboration diagram'' are:
-
-* Class instances (objects)
-* Access paths
-* Messages
-
-<center>[[File:CommunicationDiagram.bmp|center|thumb|400px|Figure 27: 'Communication diagram']]</center>
-
-
-The example (Figure 27) describes access paths between objects and which messages are passed in these paths.''Communication diagrams'' are owned by use cases.
-
-To create a ''communication diagram'', right click on the owning use case and select '''New Diagram &gt; Create a new Communication Diagram''' from its context menu.
-
-==== 7.4.1.2 Diagrams related to Classes ====
-
-When modeling classes, any or all of the following diagrams may be used:
-
-* ''Class diagrams''
-* ''Composite structure diagrams''
-* ''State diagrams''
-
-As described above, activity diagrams may also be used to specify a flowchart for a class operation.
-
-===== 7.4.1.2.1 Class diagram =====
-
-''Class diagrams'' depict static views of the system. A ''class diagram'' may represent all or part of the class structure of a system. Typically there are many ''class diagrams'' in a model. Usually one or many ''class diagrams'' are used to specify the inheritance structure in the system. ''Class diagrams'' may also be used to define dependency rules between packages.
-
-The main elements in a ''class diagram'' are:
-
-* Packages
-* Classes
-* Relationships
-
-<center>[[File:ClassDiagram.bmp|center|thumb|400px|Figure 28: 'Class diagram']]</center>
-
-The example (Figure 28) shows a ''class diagram'' used to specify an inheritance structure between classes. Note: The ''Generalization'' relationship and the indication of the inherited attributes in Class1 and Class2.
-
-''Class diagrams'' are owned by ordinary UML packages or model packages.
-
-To create a ''class diagram'', right click on the owning package and select '''New Diagram &gt; Create a new Class Diagram''' from its context menu.
-
-===== 7.4.1.2.2 Composite structure diagram =====
-
-The ''composite structure diagram'' specifies structure classes contents, i.e. how the class uses ''roles'' (instances from other classes) and how they are connected to fulfill its responsibility.
-
-The main elements in a ''composite structure diagram'' are:
-
-* Contained roles (instances of classes)
-* Ports (interface objects)
-* Connectors
-
-<center>[[File:CompositeStructure.bmp|center|thumb|400px|Figure 29: 'Composite structure diagram']]</center>
-
-The example (Figure 29) shows a ''composite structure diagram'' used to specify the structural contents of Class4. Note: Class4 uses one instance (class2) of Class2 and one instance (class3) of Class3 and they are connected between Class2/Port1 and Class3/Port2.
-
-''Composite structure diagrams'' are owned by structured classes.
-
-To create a ''composite structure diagram'', right click on the owning class and select '''New Diagram &gt; Create a new Composite Structure Diagram''' from its context menu.
-
-===== 7.4.1.2.3 State machine diagram =====
-
-The ''state machine diagram'' specifies the behavior of a class. It is used when the class is state rich, i.e. has an event driven behavior. If the class has no states, activity diagrams can be used.
-
-The main elements in a ''state machine diagram'' are:
-
-* States
-* Transitions
-* Effect code
-* Triggering events
-* Pseudo states, e.g. initial, final and choice points
-
-<center>[[File:StateDiagram.bmp|center|thumb|400px|Figure 30: 'State machine diagram']]</center>
-
-The example (Figure 30) shows a ''state machine diagram'' that has an initial pseudo state, three states and transitions between them. On each transition (except for initialize), a ''triggering event'' is specified, which defines the event that makes the transition to be taken. Transitions and states may have effect code, which specify detailed behavior to be executed when an associated transition is taken.
-
-''State machine diagrams'' are owned by classes.
-
-To create a ''state machine diagram'', right click on the owning class and select '''New Diagram &gt; Create a new State Machine Diagram''' from its context menu.
-
-=== 7.4.2 Model elements ===
-
-When doing ordinary UML modeling in Papyrus, the most common modeling elements are packages, use cases, actors and classes.
-
-Modeling elements can be added in some appropriate diagram type described in section [[#7.4.1_Diagrams|Diagrams]] or just added direct in the Model Explorer, using the context menu of the owning modeling element.
-
-==== 7.4.2.1 Package ====
-
-A ''package'' is a general UML grouping element, comparable to a folder in Windows or a directory in Unix. It is used to bring order in the model. A ''package'' may have a semantical meaning (e.g. representing a subsystem) and then a UML stereotype, defined in a applied UML Profile, may be added to it (e.g. &lt;&lt; subsystem &gt;&gt;). To create a new ''package'', right click on the owning element, e.g. the model package and from the context menu select '''New Child &gt; Create a new Package'''
-
-[[Image:NewPackage.bmp|Figure 31: Create a new ''Package']]
-
-==== 7.4.2.2 Use Case ====
-
-A ''use case'' is a functionality in the system. A ''use case'' is a model of the dialogue between actors and the system. It should return a result of measurable value to at least one actor. A ''use case'' is initiated by an actor to invoke a certain functionality in the system.
-A ''use case'' is a complete and meaningful flow of events.
-Taken together, all ''use cases'' constitute all possible ways of using the system.
-
-To create a new ''use case'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new UseCase'''
-
-[[Image:NewUseCase.bmp|Figure 32: Create a new ''use case'']]
-
-==== 7.4.2.3 Actor ====
-
-An ''actor'' is something external to the system, but interacts with it. An ''actor'' may be a human being or another system. It may be active or passive. An ''actor'' interacts (active ''actor'') or receive (passive ''actor'') information from one or several use cases.
-
-To create a new ''actor'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new Actor'''
-
-[[Image:NewActor.bmp|Figure 33: Create a new ''actor'']]
-
-==== 7.4.2.4 Class ====
-
-A ''class'' fulfills all its responsibilities through its attributes, operations and relationships.
-
-Collectively attributes define the structure of a ''class''. A class may have any number of attributes or none. Attributes are typically implemented as variables. An attribute has a type, which tells us what kind of attribute it is. Typical types of attributes are integer, Boolean, real, and enumeration. These types are called primitive types. More complex types are defined by other ''classes''.
-
-Collectively operations define the behavior of the ''class''. A ''class'' may have any number of operations or none. Operations are implemented as functions or procedures.
-
-To create a new ''class'', right click on the owning element, e.g. a package and from the context menu select '''New Child &gt; Create a new Class'''
-
-[[Image:NewClass.bmp|Figure 34: Create a new ''class'']]
-
-===== 7.4.2.5.1 Attributes on Classes =====
-
-When a ''class'' is created, ''attributes'' can be added to it by using the context menu of the ''class''. To create a new ''attribute'' on the a ''class'' select '''New Child &gt; Create a new Property''' from its context menu.
-
-[[Image:NewAttribute.bmp|Figure 35: Create a new ''attribute'']]
-
-The visibility, type and default value of the attribute are set in the properties view when the attribute is selected.
-
-===== 7.4.2.5.2 Operations on Classes =====
-
-When a ''class'' is created, ''operations'' can be added to it by using the context menu of the ''class''. To create a new ''operation'' on the a ''class'' select '''New Child &gt; Create a new Operation''' from its context menu.
-
-[[Image:NewOperation.bmp|Figure 36: Create a new ''operation'']]
-
-The visibility, arguments and return type of the operation are set in the properties view when the operation is selected.
-
-=== 7.4.3 Relationships ===
-
-There are different types of relationships that can be used in diagrams, hence in the model between different modeling elements.
-
- [[Image:Relationships.bmp|center|thumb|300px]]
-
-Navigability can be unidirectional or bidirectional for ''Association'', ''Aggregation'' and ''Composition''.
-
-''Association'' specifies peer-to-peer relationships between model elements, e.g. if a Class-x has an attribute of type Class-y, it can be viewed in a class diagram as and ''Association'' between Class-x and Class-y.
-
-''Aggregation'' is used to model a whole/part relationship between model elements. The part element can exist without the whole. ''Aggregation'' causes the generated code to contain the aggregate either by reference or by value, depending on the details of the relationship. E.g. to model an aggregation, the aggregate (Department) has an aggregation association to its constituent parts (Employee). A hollow diamond is attached to the end of an association path on the side of the aggregate (the whole) to indicate aggregation.
-
-''Composition'' is an aggregation with strong ownership, i.e. when the container is destroyed, all of its composite objects are destroyed as well.
-
-''Dependency'' is a relationship in which one model element uses another. ''Dependency'' may exist between classes if a message is sent from one class to the other or if one class mentions the other as a parameter to an operation. ''Dependency'' may exist between packages if one package is dependent on another.
-
-A ''Dependency'' relationship causes a class to be generated with inclusions or references to another class.
-
-A ''Generalization'' relationship causes a class to be generated as a subclass of another class.
-
-The ''Realizes'' relationship specifies that, e.g. an implementation realizes a specification. The ''Realizes'' relationship does not affect the code.
-
-To create a relationship between two modeling elements, use the tool palette in the diagram editor, e.g. to create an ''Association'' between two classes, select the ''Association'' tool in the tool alette, click on the source element and then click on the destination element as described in figure 37.
-
-[[Image:ClassDiagramEditorNewAss.bmp|center|thumb|500px|Figure 37: Create a new ''Association'']]
-
-
-In the ''Edges'' drawer in the tool palette, all available relationships are shown. To create a ''Generalization'' relationship, select the ''Generalization'' tool from the tool palette and follow the same procedure as described.
-
-The ''Aggregation'' and the ''Composition'' relationships are a special kind of an ''Association'' relationship. To create any of these, an ''Association'' relationship needs first to be created. Then select the created ''Association'' and in the properties view, change the ''Aggregation'' field at the appropriate end of the ''Association'' to ''shared''(if an ''Aggregation'' is desired) or to ''composite'' (if a ''Composition'' is desired). Figure 38 shows how to do it.
-
-[[Image:ClassDiagramEditorNewAgg.bmp|center|thumb|500px|Figure 38: Create a new ''Association'']]
-
-When the ''Association'' is created, the ''Aggregation'' field is set to ''none'' by default. When doing the change at the destination end (as in figure 38), the diamond shows up at the source end of the relationship.
-
-
-== <div id="UMLRTmodeling">7.5 UML RT modeling</div> ==
-
-When creating models, UML is used. UML is very general and provides possibilities to profile the basic UML in order to efficiently use it for a specific domain. When using UML for RT modeling with Capsules and Protocols, the UML RT profile is applied. When a profile is applied, it can be viewed as Papyrus is specialized. There is a specific use case of Papyrus to develop UML profiles and when doing so, a domain specific modeling language is defined. This use case is described in section [[#7.10_UML_profiling |UML profiling]] in this user guide.
-
-=== 7.5.1 Additional modeling elements ===
-
-==== 7.5.1.1 Capsule Class ====
-
-==== 7.5.1.2 Protocol Class ====
-
-=== 7.5.2 Using C in a model ===
-
-=== 7.5.3 C service library ===
-
-==== 7.5.3.1 Sending messages ====
-
-=== 7.5.4 Transformation from model to code ===
-
-=== 7.5.5 Edit the generated code ===
-
-=== 7.5.6 Compiling and linking the generated code ===
-
-=== 7.5.7 Using external libraries ===
-
-=== 7.5.8 Running the application ===
-
-=== 7.5.9 Model components ===
-
-== <div id="Papyrusinateamenvironment">7.6 Papyrus in a team environment</div> ==
-
-=== 7.6.1 Model fragmentation ===
-
-=== 7.6.2 Source configuration management ===
-
-=== 7.6.3 Compare and Merge ===
-
-== <div id="Modelvalidation">7.7 Model validation</div> ==
-
-=== 7.7.1 Object Constrain Language (OCL) ===
-
-=== 7.7.2 Defining constraints using OCL ===
-
-== <div id="Searching">7.8 Searching</div> ==
-
-== 7.9 Sample models ==
-
-In the Papyrus installation directory There are several sample models
-
-=== 7.9.1 Class model with inheritance ===
-
-=== 7.9.2 Send and receive data ===
-
-=== 7.9.3 Interprocess communication ===
-
-== <div id="UMLprofiling">7.10 UML profiling</div> ==
-
-TBD include the information in the user guide "About UML profiling"
-
-= 8 Support =
-
-To report bugs, suggest improvements, view the status of the Papyrus project, discuss different Papyrus subjects, etc. please use the following references:
-
-* [http://www.eclipse.org/papyrus/ The Papyrus project home page]
-* [http://www.eclipse.org/forums/index.php/f/121/ The Papyrus discussion forum]
-* Proposals for Papyrus improvements
-* [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Modeling&product=MDT.Papyrus&component=Core&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=exact&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse%20same%20sort%20as%20last%20time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Bugzilla_to_report_bugs]
-
-= 9 References = \ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/SequenceDiagram.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/SequenceDiagram.bmp
index 963c6417402..104d2da3fcb 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/SequenceDiagram.bmp
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/SequenceDiagram.bmp
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/StateDiagram.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/StateDiagram.bmp
index 47ae73f5ee9..0005e29f839 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/StateDiagram.bmp
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/StateDiagram.bmp
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/UCdiagram.bmp b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/UCdiagram.bmp
index 0d398786f75..5a0ce561e9d 100644
--- a/plugins/doc/org.eclipse.papyrus.uml.doc/resource/UCdiagram.bmp
+++ b/plugins/doc/org.eclipse.papyrus.uml.doc/resource/UCdiagram.bmp
Binary files differ
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/plugin.xml b/plugins/infra/core/org.eclipse.papyrus.infra.core/plugin.xml
index c694ca9d561..5ea051c054f 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core/plugin.xml
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/plugin.xml
@@ -329,6 +329,13 @@
</category>
</extension>
<extension
+ point="org.eclipse.ui.importWizards">
+ <category
+ id="org.eclipse.papyrus.infra.core.importcategory"
+ name="Papyrus">
+ </category>
+ </extension>
+ <extension
id="org.eclipse.papyrus.modelmarker"
name="model marker"
point="org.eclipse.core.resources.markers">
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java
index a34311e02cb..011a7184d54 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java
@@ -16,6 +16,7 @@ package org.eclipse.papyrus.infra.gmfdiag.common.figure.edge;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -31,11 +32,16 @@ import org.eclipse.gef.ConnectionEditPart;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.GraphicalViewer;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.gmf.runtime.common.ui.services.editor.EditorService;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart;
import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
import org.eclipse.papyrus.infra.core.editor.CoreMultiDiagramEditor;
import org.eclipse.papyrus.infra.tools.util.EditorHelper;
import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
/**
*
@@ -205,7 +211,7 @@ public abstract class PapyrusEdgeFigure extends PolylineConnectionEx {
* the visual part map for this figure or <code>null</code> if not found
*/
protected Map<?, ?> getVisualPartMap(final IFigure figure) {
- final IEditorPart part = EditorHelper.getCurrentEditor();
+ IEditorPart part = EditorHelper.getCurrentEditor();
if(part instanceof CoreMultiDiagramEditor) {
final List<IEditorPart> visibleEditors = ((CoreMultiDiagramEditor)part).getISashWindowsContainer().getVisibleIEditorParts();
for(final IEditorPart current : visibleEditors) {
@@ -215,6 +221,28 @@ public abstract class PapyrusEdgeFigure extends PolylineConnectionEx {
return visualPartMap;
}
}
+ } else {
+ //used when papyrus has been "unsashified"
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ if(workbench != null) {
+ final IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+ if(window != null) {
+ final List<?> editors = EditorService.getInstance().getRegisteredEditorParts();
+ for(Iterator<?> j = editors.iterator(); j.hasNext();) {
+ final IEditorPart editor = (IEditorPart)j.next();
+ if(editor.getEditorSite().getWorkbenchWindow() == window) {
+ if(editor instanceof IDiagramWorkbenchPart) {
+ final IDiagramWorkbenchPart de = (IDiagramWorkbenchPart)editor;
+ final GraphicalViewer viewer = de.getDiagramGraphicalViewer();
+ final Map<?, ?> visualPartMap = viewer.getVisualPartMap();
+ if(visualPartMap.containsKey(figure)) {
+ return visualPartMap;
+ }
+ }
+ }
+ }
+ }
+ }
}
return null;
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/PreferencesConstantsHelper.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/PreferencesConstantsHelper.java
index 333472d9390..1ff44b8c5a6 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/PreferencesConstantsHelper.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/PreferencesConstantsHelper.java
@@ -50,17 +50,17 @@ public class PreferencesConstantsHelper {
/**
* Prefix for preference for Papyrus Level editor
*/
- public static String PAPYRUS_EDITOR_PREFERENCE_PREFIX = "PAPYRUS_EDITOR"; //$NON-NLS-1$
+ public final static String PAPYRUS_EDITOR_PREFERENCE_PREFIX = "PAPYRUS_EDITOR"; //$NON-NLS-1$
/**
* Prefix for preference for Diagram Level
*/
- public static String DIAGRAM_PREFERENCE_PREFIX = "DIAGRAM_"; //$NON-NLS-1$
+ public final static String DIAGRAM_PREFERENCE_PREFIX = "DIAGRAM_"; //$NON-NLS-1$
/**
* Prefix for preference for element Level
*/
- public static String DIAGRAM_ELEMENT = "ELEMENT_"; //$NON-NLS-1$
+ public final static String DIAGRAM_ELEMENT = "ELEMENT_"; //$NON-NLS-1$
private final static String COLOR = "color."; //$NON-NLS-1$
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.model/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.model/META-INF/MANIFEST.MF
index 1ddbc413576..ef692dd6a9f 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.model/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.model/META-INF/MANIFEST.MF
@@ -9,9 +9,6 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0",
org.eclipse.emf.facet.infra.query;bundle-version="0.1.1",
org.eclipse.emf.facet.infra.query.core;bundle-version="0.1.1",
- org.eclipse.emf.facet.infra.facet;bundle-version="0.1.1",
- org.eclipse.emf.facet.infra.facet.core;bundle-version="0.1.1",
- org.eclipse.emf.facet.infra.browser.custom.core;bundle-version="0.1.2",
org.eclipse.uml2.uml;bundle-version="4.0.0"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
index b1cc9aac1ba..f10847acb64 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
@@ -4,8 +4,6 @@ Require-Bundle: org.eclipse.ui,
com.google.guava;bundle-version="11.0.0",
org.eclipse.papyrus.views.modelexplorer;bundle-version="1.0.0",
org.eclipse.emf.facet.infra.query.core,
- org.eclipse.emf.facet.infra.browser.custom.core,
- org.eclipse.emf.facet.infra.facet.core,
org.eclipse.gmf.runtime.notation,
org.eclipse.emf.transaction,
org.eclipse.gmf.runtime.common.core,
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/META-INF/MANIFEST.MF
index 7690f0eab37..f0102ff4fbd 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/META-INF/MANIFEST.MF
@@ -2,7 +2,8 @@ Manifest-Version: 1.0
Require-Bundle: org.eclipse.gmf.runtime.diagram.ui.properties,
org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0",
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
- com.ibm.icu
+ com.ibm.icu,
+ org.eclipse.papyrus.infra.tools;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.infra.gmfdiag.preferences,
org.eclipse.papyrus.infra.gmfdiag.preferences.initializer,
org.eclipse.papyrus.infra.gmfdiag.preferences.jface.preference;x-internal:=true,
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/PapyrusPreferenceStore.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/PapyrusPreferenceStore.java
index 9aa7376e7c5..4b982b4cf8d 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/PapyrusPreferenceStore.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/PapyrusPreferenceStore.java
@@ -13,239 +13,58 @@
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.preferences;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper;
import org.eclipse.papyrus.infra.gmfdiag.preferences.ui.dialog.ApplyValueOnPreferenceKeyDialog;
+import org.eclipse.papyrus.infra.tools.preferences.AbstractPapyrusPreferenceStore;
+import org.eclipse.papyrus.infra.tools.preferences.ui.dialog.AbstractApplyValueOnPreferenceKeyDialog;
/**
* this class is a specific store that is used to look for value of element
* by taking account the structure of preferences : papyrus editor-> Diagram -> Elements of Diagram
*
*/
-public class PapyrusPreferenceStore extends PapyrusScopedPreferenceStore {
+public class PapyrusPreferenceStore extends AbstractPapyrusPreferenceStore {
/**
- * this method is used to overload all value under a level of preferences.
- * In order to overload a pop-up is opened, and the user can choose value to overload
*
- * @param level
- * of preference: Editor or diagram
- */
-
- public void deleteAllSubPreference(String level) {
- //remove all sub value diagram+ element
- ArrayList<String> keytoRemove = new ArrayList<String>();
- //key to collect
- ArrayList<String> elementKey = new ArrayList<String>();
- try {
- for(int i = 0; i < getStorePreferences().keys().length; i++) {
- //level diagram collect only element
- if(level.startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
- if(getStorePreferences().keys()[i].startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
- elementKey.add(getStorePreferences().keys()[i]);
- }
- }
- //editor level, collect all element+diagram
- else if(level.startsWith(PreferencesConstantsHelper.PAPYRUS_EDITOR_PREFERENCE_PREFIX)) {
- if((getStorePreferences().keys()[i].startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) || (getStorePreferences().keys()[i].startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX))) {
- elementKey.add(getStorePreferences().keys()[i]);
- }
- }
-
- }
-
- } catch (Exception e) {
- Activator.log.error(e);
- }
- if(elementKey.size() > 0) {
- String[] keyRoconsult = new String[elementKey.size()];
- ApplyValueOnPreferenceKeyDialog dialog = new ApplyValueOnPreferenceKeyDialog(elementKey.toArray(keyRoconsult));
- dialog.open();
- keytoRemove = dialog.getKeyToRemove();
-
- //remove key
- Iterator<String> iterator = keytoRemove.iterator();
- while(iterator.hasNext()) {
- String key = (String)iterator.next();
- getStorePreferences().remove(key);
- }
- }
- }
-
-
- /**
- * constructor
+ * Constructor.
*
* @param context
- * the scope to store to
* @param qualifier
- * the qualifier used to look up the preference node
- */
- public PapyrusPreferenceStore(IScopeContext context, String qualifier) {
- super(context, qualifier);
- }
-
- /**
- * constructor
- *
- * @param context
- * the scope to store to
- * @param qualifier
- * the qualifier used to look up the preference node
* @param defaultQualifierPath
- * the qualifier used when looking up the defaults
*/
public PapyrusPreferenceStore(IScopeContext context, String qualifier, String defaultQualifierPath) {
- super(context, qualifier, defaultQualifierPath);
+ super(context, qualifier, defaultQualifierPath, PreferencesConstantsHelper.PAPYRUS_EDITOR_PREFERENCE_PREFIX, PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX, PreferencesConstantsHelper.DIAGRAM_ELEMENT);
}
- // each get value will be overloaded
- //if not value is found for an element, a value is look for in DIAGRAM
- // if a the value is not find for Diagram a value is find for Papyrus editor
-
/**
- * this method is used to find a key that a got a value:
- * if the key is an element. The method look for if this key exist. If no value exists, it look for the key for diagram
- * if the key for diagram do not exist it look for key for papyrus Editor
- * the structure of Key is:
- * element : ELEMENT_DiagramKind_ElementKind.preferenceKind
- * Diagram : DIAGRAM_DiagramKind.preferenceKind
- * Editor: PAPYRUS_EDITOR.preferenceKind
*
- */
- protected String findKeyWithAValue(String initialKey) {
- String foundedKey = null;
- //first look for in value stack
- foundedKey = findKeyAStoreValue(initialKey);
- //then look for in default stack
- if(foundedKey == null) {
- foundedKey = findKeyWithADefaultValue(initialKey);
- }
- if(foundedKey == null) {
- foundedKey = initialKey;
- }
- return foundedKey;
-
- }
-
- /**
- * look for a key with a value in the store stack
+ * Constructor.
*
- * @param initialKey
- * element : ELEMENT_DiagramKind_ElementKind.preferenceKind
- * Diagram : DIAGRAM_DiagramKind.preferenceKind
- * Editor: PAPYRUS_EDITOR.preferenceKind
- * @return the key that returns a value or null if there is no value
+ * @param context
+ * @param qualifier
*/
- protected String findKeyAStoreValue(String initialKey) {
- String foundedKey = null;
- if(getStorePreferences().get(initialKey, null) != null) {
- foundedKey = initialKey;
- }
-
- if(foundedKey == null && hasPrefix(initialKey)) {
- foundedKey = findKeyAStoreValue(getUpperKey(initialKey));
- }
- return foundedKey;
+ public PapyrusPreferenceStore(IScopeContext context, String qualifier) {
+ super(context, qualifier, PreferencesConstantsHelper.PAPYRUS_EDITOR_PREFERENCE_PREFIX, PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX, PreferencesConstantsHelper.DIAGRAM_ELEMENT);
}
- /**
- * this method is used to find a key that a got a value:
- * if the key is an element. The method look for if this key exist. If no value exists, it look for the key for diagram
- * if the key for diagram do not exist it look for key for papyrus Editor
- * the structure of Key is:
- * element : ELEMENT_DiagramKind_ElementKind.preferenceKind
- * Diagram : DIAGRAM_DiagramKind.preferenceKind
- * Editor: PAPYRUS_EDITOR.preferenceKind
- *
- */
- protected String findKeyWithADefaultValue(String initialKey) {
- String foundedKey = null;
-
- if(getDefaultPreferences().get(initialKey, null) != null) {
- foundedKey = initialKey;
- }
-
- if(foundedKey == null && hasPrefix(initialKey)) {
- return findKeyWithADefaultValue(getUpperKey(initialKey));
- } else {
- foundedKey = initialKey;
- }
- return foundedKey;
-
- }
/**
- * get the upper Key from the initial Key
- * * the structure of Key is:
- * element : ELEMENT_DiagramKind_ElementKind.preferenceKind
- * Diagram : DIAGRAM_DiagramKind.preferenceKind
- * Editor: PAPYRUS_EDITOR.preferenceKind
*
- * @param initialKey
- * @return the upperKey
+ * @see org.eclipse.papyrus.infra.tools.preferences.AbstractPapyrusPreferenceStore#createPreferenceKeyDialog(java.lang.String[])
*
+ * @param keys
+ * @return
*/
- protected String getUpperKey(String initialKey) {
-
- String out = initialKey.toString();
- if(initialKey.startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
- out = initialKey.toString().replaceAll(PreferencesConstantsHelper.DIAGRAM_ELEMENT, PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX);
- out = out.substring(0, out.lastIndexOf("_")) + out.substring(out.indexOf("."), out.length());
- }
- if(initialKey.startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
- // out=initialKey.toString().replaceAll(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX, PreferencesConstantsHelper.PAPYRUS_EDITOR_PREFERENCE_PREFIX);
- out = PreferencesConstantsHelper.PAPYRUS_EDITOR_PREFERENCE_PREFIX + out.substring(out.indexOf("."), out.length());
- }
- return out;
+ @Override
+ protected AbstractApplyValueOnPreferenceKeyDialog createPreferenceKeyDialog(String[] keys) {
+ return new ApplyValueOnPreferenceKeyDialog(keys);
}
- protected boolean hasPrefix(String key) {
- if(key.startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT) || key.startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
- return true;
- }
- return false;
- }
- /**
- * get the value from a key
- *
- * @param key
- * @return the value
- */
- protected String internalGet(String key) {
- String newKey = findKeyWithAValue(key);
- //System.err.println("-->Initial Key "+key+"--> "+ newKey);
- return Platform.getPreferencesService().get(newKey, null, getPreferenceNodes(true));
- }
-
- public boolean getDefaultBoolean(String name) {
-
- return super.getDefaultBoolean(findKeyWithADefaultValue(name));
- }
- public double getDefaultDouble(String name) {
- return super.getDefaultDouble(findKeyWithADefaultValue(name));
- }
-
- public float getDefaultFloat(String name) {
- return super.getDefaultFloat(findKeyWithADefaultValue(name));
- };
-
- public int getDefaultInt(String name) {
- return super.getDefaultInt(findKeyWithADefaultValue(name));
- }
- public long getDefaultLong(String name) {
- return super.getDefaultLong(findKeyWithADefaultValue(name));
- }
- public String getDefaultString(String name) {
- return super.getDefaultString(findKeyWithADefaultValue(name));
- }
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/Messages.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/Messages.java
index 1db6cf676fb..181355afe8a 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/Messages.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/Messages.java
@@ -19,6 +19,10 @@ public class Messages extends NLS {
private static final String BUNDLE_NAME = "org.eclipse.papyrus.infra.gmfdiag.preferences.messages.messages"; //$NON-NLS-1$
+ public static String ApplyValueOnPreferenceKeyDialog_DIAGRAM;
+
+ public static String ApplyValueOnPreferenceKeyDialog_ELEMENT;
+
public static String LabelGroup_Labels_To_Display;
public static String RulersAndGridGroup_GridColor;
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/messages.properties b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/messages.properties
index 32eec8f4ccd..f84dfb59fe8 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/messages.properties
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/messages/messages.properties
@@ -2,6 +2,8 @@ LabelGroup_Labels_To_Display=Labels to display
RulersAndGridGroup_GridColor=Grid Color
RulersAndGridGroup_GridInFront=Grid In Front
RulersAndGridGroup_GridStyle=Grid Style
+ApplyValueOnPreferenceKeyDialog_DIAGRAM=DIAGRAM
+ApplyValueOnPreferenceKeyDialog_ELEMENT=ELEMENT
RulersAndGridGroup_GridColor=Grid Color
RulersAndGridGroup_GridInFront=Grid In Front
RulersAndGridGroup_GridStyle=Grid Style
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/AbstractPreferenceKeyDialog.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/AbstractPreferenceKeyDialog.java
deleted file mode 100644
index 6f44dee5bdb..00000000000
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/AbstractPreferenceKeyDialog.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- *
- * 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:
- * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.gmfdiag.preferences.ui.dialog;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper;
-import org.eclipse.papyrus.infra.gmfdiag.preferences.Activator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * The Class AbstractPreferenceKeyDialog display all preference key that are given in parameters
- */
-public class AbstractPreferenceKeyDialog extends org.eclipse.jface.dialogs.StatusDialog {
-
- /** The key table. */
- protected Table keyTable;
-
- /** The table viewer. */
- protected TableViewer tableViewer;
-
- /** The keys. */
- protected String[] keys;
-
- /**
- * Instantiates a new abstract preference key dialog.
- *
- * @param keys
- * the array of preference jy to display
- */
- public AbstractPreferenceKeyDialog(String[] keys) {
- super(new Shell());
- this.keys = keys;
- setStatusLineAboveButtons(true);
- updateStatus(new Status(IStatus.INFO, Activator.PLUGIN_ID, "Would you like to overload those preferences?"));
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite composite = (Composite)super.createDialogArea(parent);
- keyTable = new Table(composite, SWT.CHECK | SWT.BORDER);
- tableViewer = new TableViewer(keyTable);
- tableViewer.setLabelProvider(new KeyLabelProvider());
- tableViewer.setContentProvider(new KeyContentProvider());
-
- TableColumn column = new TableColumn(keyTable, SWT.NONE);
- column.setWidth(150);
- column.setText("Pref. kind ");
-
- column = new TableColumn(keyTable, SWT.NONE);
- column.setWidth(90);
- column.setText("Level");
-
- column = new TableColumn(keyTable, SWT.NONE);
- column.setWidth(200);
- column.setText("Localization");
- tableViewer.setInput(keys);
- keyTable.setHeaderVisible(true);
-
-
- return composite;
-
- }
-
- /**
- * The Class KeyLabelProvider.
- */
- protected class KeyLabelProvider extends LabelProvider implements ITableLabelProvider, ITableColorProvider {
-
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.ITableColorProvider#getForeground(java.lang.Object, int)
- */
- public Color getForeground(Object element, int columnIndex) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.ITableColorProvider#getBackground(java.lang.Object, int)
- */
- public Color getBackground(Object element, int columnIndex) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
- */
- public Image getColumnImage(Object element, int columnIndex) {
- if(columnIndex == 0) {
- if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
- return Activator.getPluginIconImage(Activator.PLUGIN_ID, "/icons/pref.gif");
- }
- if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
- return Activator.getPluginIconImage(Activator.PLUGIN_ID, "/icons/diag.gif");
- }
- }
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
- */
- public String getColumnText(Object element, int columnIndex) {
- String initialKey = element.toString();
- String out = initialKey.toString();
- if(columnIndex == 0) {
- out = out.substring(out.indexOf(".") + 1, out.length()).toUpperCase();
- }
- if(columnIndex == 1) {
- if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
- return "ELEMENT";
- }
- if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
- return "DIAGRAM";
- }
- }
- if(columnIndex == 2) {
- if(initialKey.startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
- out = initialKey.toString().replaceAll(PreferencesConstantsHelper.DIAGRAM_ELEMENT, "");
- // Reorganize display
- if(out.indexOf(".") > 0) {
- String beforePoint = out.substring(0, out.indexOf("."));
- if(beforePoint.lastIndexOf("_") > 0) {
- out = out.substring(beforePoint.lastIndexOf("_") + 1, out.indexOf(".")) + " (" + beforePoint.substring(0, beforePoint.lastIndexOf("_")) + ")";
- }
- }
- }
- if(initialKey.startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
- out = initialKey.toString().replaceAll(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX, "");
- out = out.substring(0, out.indexOf("."));
- }
- }
- return out;
- }
- }
-
-
- /**
- * The Class KeyContentProvider.
- */
- protected class KeyContentProvider implements IStructuredContentProvider {
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.IContentProvider#dispose()
- */
- public void dispose() {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
- */
- public Object[] getElements(Object inputElement) {
- ArrayList<String> result = new ArrayList<String>();
- for(int i = 0; i < keys.length; i++) {
- if(keys[i].startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
- result.add(keys[i]);
- }
- if(keys[i].startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
- result.add(keys[i]);
- }
- }
- return result.toArray();
- }
-
- }
-
-}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/ApplyValueOnPreferenceKeyDialog.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/ApplyValueOnPreferenceKeyDialog.java
index 8587f0f91e5..aadcc60934b 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/ApplyValueOnPreferenceKeyDialog.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/ui/dialog/ApplyValueOnPreferenceKeyDialog.java
@@ -15,61 +15,169 @@ package org.eclipse.papyrus.infra.gmfdiag.preferences.ui.dialog;
import java.util.ArrayList;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableColorProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper;
+import org.eclipse.papyrus.infra.gmfdiag.preferences.Activator;
+import org.eclipse.papyrus.infra.gmfdiag.preferences.messages.Messages;
+import org.eclipse.papyrus.infra.tools.preferences.ui.dialog.AbstractApplyValueOnPreferenceKeyDialog;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+
/**
* The Class ApplyValueOnPreferenceKeyDialog display all the preference key and give all selected keys
*/
-public class ApplyValueOnPreferenceKeyDialog extends AbstractPreferenceKeyDialog {
-
- /** The checked key. */
- protected ArrayList<String> checkedKey;
+public class ApplyValueOnPreferenceKeyDialog extends AbstractApplyValueOnPreferenceKeyDialog {
- /**
- * Instantiates a new apply value on preference key dialog.
- *
- * @param keys
- * the keys
- */
public ApplyValueOnPreferenceKeyDialog(String[] keys) {
super(keys);
- checkedKey = new ArrayList<String>();
- // TODO Auto-generated constructor stub
}
/**
- * Gets the key to remove.
- *
- * @return the key to remove
+ *
*/
- public ArrayList<String> getKeyToRemove() {
- return checkedKey;
+ @Override
+ protected IBaseLabelProvider createLabelProvider() {
+ return new KeyLabelProvider();
}
- /*
- * (non-Javadoc)
+ /**
+ *
+ * @see org.eclipse.papyrus.infra.tools.preferences.ui.dialog.AbstractPreferenceKeyDialog#createContentProvider()
*
- * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+ * @return
*/
@Override
- protected void okPressed() {
+ protected IContentProvider createContentProvider() {
+ return new KeyContentProvider();
+ }
+
+ /**
+ * The Class KeyLabelProvider.
+ */
+ protected static class KeyLabelProvider extends LabelProvider implements ITableLabelProvider, ITableColorProvider {
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableColorProvider#getForeground(java.lang.Object, int)
+ */
+ public Color getForeground(Object element, int columnIndex) {
+ //nothing to do
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableColorProvider#getBackground(java.lang.Object, int)
+ */
+ public Color getBackground(Object element, int columnIndex) {
+ //nothing to do
+ return null;
+ }
- for(int i = 0; i < keyTable.getItems().length; i++) {
- if(keyTable.getItems()[i].getChecked()) {
- checkedKey.add((String)keyTable.getItems()[i].getData());
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+ */
+ public Image getColumnImage(Object element, int columnIndex) {
+ if(columnIndex == 0) {
+ if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
+ return Activator.getPluginIconImage(Activator.PLUGIN_ID, "/icons/pref.gif"); //$NON-NLS-1$
+ }
+ if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
+ return Activator.getPluginIconImage(Activator.PLUGIN_ID, "/icons/diag.gif"); //$NON-NLS-1$
+ }
}
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+ */
+ public String getColumnText(Object element, int columnIndex) {
+ String initialKey = element.toString();
+ String out = initialKey.toString();
+ if(columnIndex == 0) {
+ out = out.substring(out.indexOf(".") + 1, out.length()).toUpperCase(); //$NON-NLS-1$
+ }
+ if(columnIndex == 1) {
+ if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
+ return Messages.ApplyValueOnPreferenceKeyDialog_ELEMENT;
+ }
+ if(element.toString().startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
+ return Messages.ApplyValueOnPreferenceKeyDialog_DIAGRAM;
+ }
+ }
+ if(columnIndex == 2) {
+ if(initialKey.startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
+ out = initialKey.toString().replaceAll(PreferencesConstantsHelper.DIAGRAM_ELEMENT, ""); //$NON-NLS-1$
+ // Reorganize display
+ if(out.indexOf(".") > 0) { //$NON-NLS-1$
+ String beforePoint = out.substring(0, out.indexOf(".")); //$NON-NLS-1$
+ if(beforePoint.lastIndexOf("_") > 0) { //$NON-NLS-1$
+ out = out.substring(beforePoint.lastIndexOf("_") + 1, out.indexOf(".")) + " (" + beforePoint.substring(0, beforePoint.lastIndexOf("_")) + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+ }
+ }
+ }
+ if(initialKey.startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
+ out = initialKey.toString().replaceAll(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX, ""); //$NON-NLS-1$
+ out = out.substring(0, out.indexOf(".")); //$NON-NLS-1$
+ }
+ }
+ return out;
}
- super.okPressed();
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.dialogs.Dialog#cancelPressed()
+
+ /**
+ * The Class KeyContentProvider.
*/
- @Override
- protected void cancelPressed() {
- super.cancelPressed();
- checkedKey = new ArrayList<String>();
+ protected class KeyContentProvider implements IStructuredContentProvider {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ public void dispose() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+ */
+ public Object[] getElements(Object inputElement) {
+ ArrayList<String> result = new ArrayList<String>();
+ for(int i = 0; i < keys.length; i++) {
+ if(keys[i].startsWith(PreferencesConstantsHelper.DIAGRAM_PREFERENCE_PREFIX)) {
+ result.add(keys[i]);
+ }
+ if(keys[i].startsWith(PreferencesConstantsHelper.DIAGRAM_ELEMENT)) {
+ result.add(keys[i]);
+ }
+ }
+ return result.toArray();
+ }
+
}
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
index 80c9d55034a..d922ee2a532 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
@@ -18,7 +18,6 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
org.eclipse.papyrus.uml.tools;bundle-version="1.0.0",
- org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.0",
org.eclipse.papyrus.infra.services.labelprovider;bundle-version="1.0.0",
org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.infra.gmfdiag.properties.extension,
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.classpath b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.classpath
deleted file mode 100644
index 8a8f1668cdc..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.project b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.project
deleted file mode 100644
index f5d365ab83a..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.papyrus.infra.emf.nattable.converter</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f287d53cf45..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/META-INF/MANIFEST.MF
deleted file mode 100644
index 68b127c8adc..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.table.instance;bundle-version="1.0.0",
- org.eclipse.emf.facet.widgets.nattable.instance;bundle-version="0.3.0",
- org.eclipse.core.expressions,
- org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.emf;bundle-version="1.0.0",
- org.eclipse.emf.transaction;bundle-version="1.4.0",
- org.eclipse.papyrus.infra.nattable;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.nattable.model;bundle-version="1.0.0",
- org.eclipse.gmf.runtime.emf.type.core,
- org.eclipse.papyrus.infra.services.edit;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
- org.eclipse.papyrus.infra.nattable.common;bundle-version="1.0.0"
-Bundle-Vendor: %Bundle-Vendor
-Bundle-ActivationPolicy: lazy
-Bundle-Version: 1.0.0.qualifier
-Bundle-Name: %Bundle-Name
-Bundle-ManifestVersion: 2
-Bundle-Activator: org.eclipse.papyrus.uml.nattable.converter.Activator
-Bundle-SymbolicName: org.eclipse.papyrus.infra.emf.nattable.converter;
- singleton:=true
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/OSGI-INF/l10n/bundle.properties b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index e26619d4d2f..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Properties file for org.eclipse.papyrus.uml.nattable.converter
-Bundle-Vendor = Eclipse Modeling Project
-Bundle-Name = Old Table Converter (Incubation) \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/about.html b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/about.html
deleted file mode 100644
index 598b3684879..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>May 12, 2008</p>
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/build.properties b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/build.properties
deleted file mode 100644
index 1961e7848c9..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- plugin.pdoc,\
- about.html,\
- OSGI-INF/
-src.includes = about.html
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.pdoc b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.pdoc
deleted file mode 100644
index e76e9322193..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.pdoc
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<doc:Documentation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:doc="http://www.eclipse.org/papyrus/documentation/plugin/documentation" description="This plugin provides handlers to convert the old tables to the new tables">
- <referent firstName="vincent" lastName="lorenzo" eMail="vincent.lorenzo@cea.fr" currentCompany="CEA-LIST"/>
-</doc:Documentation>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.xml
deleted file mode 100644
index cf6573c0c4d..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/plugin.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension
- point="org.eclipse.ui.menus">
- <menuContribution
- allPopups="false"
- locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup?after=org.eclipse.papyrus.views.modelexplorer.popupmenu.creatediagram">
- <command
- commandId="org.eclipse.papyrus.uml.nattable.converter.command"
- style="push">
- <visibleWhen
- checkEnabled="true">
- </visibleWhen>
- </command>
- <command
- commandId="org.eclipse.papyrus.uml.nattable.converter.all.tables.command"
- style="push">
- <visibleWhen
- checkEnabled="true">
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
- <command
- defaultHandler="org.eclipse.papyrus.uml.nattable.converter.handlers.ConvertOldTableHandler"
- id="org.eclipse.papyrus.uml.nattable.converter.command"
- name="Convert Old Table to New Table">
- </command>
- <command
- defaultHandler="org.eclipse.papyrus.uml.nattable.converter.handlers.ConvertAllTablesHandler"
- id="org.eclipse.papyrus.uml.nattable.converter.all.tables.command"
- name="Convert All Old Tables to New Tables">
- </command>
- </extension>
-
-</plugin>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/Activator.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/Activator.java
deleted file mode 100644
index 859ab8f36c4..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/Activator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
- *
- *
- * 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:
- * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.nattable.converter;
-
-import org.eclipse.papyrus.infra.core.log.LogHelper;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.emf.nattable.converter"; //$NON-NLS-1$
-
- // The shared instance
- private static Activator plugin;
-
- public static LogHelper log;
-
- /**
- * The constructor
- */
- public Activator() {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
- */
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- log = new LogHelper(this);
- plugin = this;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
- */
- @Override
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static Activator getDefault() {
- return plugin;
- }
-
-}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertAllTablesHandler.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertAllTablesHandler.java
deleted file mode 100644
index 3575a6649f1..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertAllTablesHandler.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
- *
- *
- * 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:
- * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.nattable.converter.handlers;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
-import org.eclipse.papyrus.infra.table.instance.papyrustableinstance.PapyrusTableInstance;
-
-
-public class ConvertAllTablesHandler extends ConvertOldTableHandler {
-
-
- /**
- *
- * @see org.eclipse.papyrus.uml.nattable.converter.handlers.ConvertOldTableHandler#setEnabled(java.lang.Object)
- *
- * @param evaluationContext
- */
- @Override
- public void setEnabled(Object evaluationContext) {
- Object selection = ((IEvaluationContext)evaluationContext).getDefaultVariable();
- List<PapyrusTableInstance> allPapyrusTableInstances = new ArrayList<PapyrusTableInstance>();
- if(selection instanceof List<?>) {
- List<?> list = (List<?>)selection;
- Iterator<?> iter = list.iterator();
- while(iter.hasNext()) {
- Object current = iter.next();
- if(current instanceof IAdaptable) {
- EObject eobject = (EObject)((IAdaptable)current).getAdapter(EObject.class);
- if(eobject != null) {
- final IPageManager manager = getPageManager(eobject);
- for(final Object page : manager.allPages()) {
- if(page instanceof PapyrusTableInstance) {
- allPapyrusTableInstances.add((PapyrusTableInstance)page);
- }
- }
- }
- }
- }
- }
- this.oldPapyrusTableInstance = allPapyrusTableInstances;
- setBaseEnabled(!this.oldPapyrusTableInstance.isEmpty());
- }
-}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertOldTableHandler.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertOldTableHandler.java
deleted file mode 100644
index 6930666bb11..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/handlers/ConvertOldTableHandler.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
- *
- *
- * 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:
- * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.nattable.converter.handlers;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CompoundCommand;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EStructuralFeature.Setting;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.ECrossReferenceAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.gmf.runtime.emf.core.util.CrossReferenceAdapter;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
-import org.eclipse.papyrus.infra.core.resource.ModelSet;
-import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
-import org.eclipse.papyrus.infra.core.sashwindows.di.DiPackage;
-import org.eclipse.papyrus.infra.core.services.ServiceException;
-import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
-import org.eclipse.papyrus.infra.nattable.common.modelresource.PapyrusNattableModel;
-import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
-import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxis.EObjectAxis;
-import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxis.NattableaxisFactory;
-import org.eclipse.papyrus.infra.nattable.model.nattable.nattableaxisconfiguration.AxisManagerRepresentation;
-import org.eclipse.papyrus.infra.nattable.model.nattable.nattableconfiguration.TableConfiguration;
-import org.eclipse.papyrus.infra.nattable.nattableconfiguration.NattableConfigurationRegistry;
-import org.eclipse.papyrus.infra.nattable.utils.TableHelper;
-import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
-import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
-import org.eclipse.papyrus.infra.table.instance.papyrustableinstance.PapyrusTableInstance;
-import org.eclipse.papyrus.uml.nattable.converter.Activator;
-import org.eclipse.papyrus.uml.nattable.converter.messages.Messages;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * This handler allows to convert ONE old PapyrusTableInstance to a new Papyrus table
- *
- * @author vl222926
- *
- */
-public class ConvertOldTableHandler extends AbstractHandler {
-
- public static final String OLD_DEFAULT_TABLE_TYPE = "PapyrusDefaultTable"; //$NON-NLS-1$
-
- public static final String OLD_REQUIREMENT_TABLE = "PapyrusRequirementTable"; //$NON-NLS-1$
-
- public static final String OLD_ALLOCATION_TABLE = "PapyrusAllocationTable"; //$NON-NLS-1$
-
- public static final String PAPYRUS_NEW_DEFAULT_TABLE = "PapyrusGenericTable"; //$NON-NLS-1$
-
- public static final String PAPYRUS_NEW_REQUIREMENT_TABLE = "PapyrusSysMLRequirementTable"; //$NON-NLS-1$
-
- public static final String PAPYRUS_NEW_ALLOCATION_TABLE = "PapyrusSysMLAllocationTable"; //$NON-NLS-1$
-
- protected List<PapyrusTableInstance> oldPapyrusTableInstance;
-
- /**
- *
- * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- *
- * @param event
- * @return null
- * @throws ExecutionException
- */
- public Object execute(ExecutionEvent event) throws ExecutionException {
- boolean destroyOldTable = false;
- boolean replaceOldRequirementTableByNewRequirementTable = false;
- boolean replaceOldSysMLAllocationTableByNewSysMLAllocationTable = false;
- boolean selectionContainsRequirementsTable = false;
- boolean selectionContainsAllocationTable = false;
- boolean selectionContainsCustomTableKind = false;
- boolean convertCustomTabletoGenericTable = false;
- final List<PapyrusTableInstance> oldTables = oldPapyrusTableInstance;
- if(!oldTables.isEmpty()) {
- for(final PapyrusTableInstance oldTable : oldTables) {
- final String type = oldTable.getType();
- if(OLD_REQUIREMENT_TABLE.equals(type)) {
- selectionContainsRequirementsTable = true;
- }
- if(OLD_ALLOCATION_TABLE.equals(type)) {
- selectionContainsAllocationTable = true;
- }
- if(selectionContainsAllocationTable && selectionContainsRequirementsTable) {
- break;
- }
- }
-
- String dialogTitle = Messages.ConvertOldTableHandler_ConvertOldTableQuestion;
- boolean answer = MessageDialog.openQuestion(Display.getDefault().getActiveShell(), dialogTitle, Messages.ConvertOldTableHandler_AdvicesForUser);
- if(!answer) {
- return null;
- }
-
- String dialogGlobalMessage = Messages.ConvertOldTableHandler_DialogMessage;
- String dialogAllocationMessage = String.format(dialogGlobalMessage, "Allocation"); //$NON-NLS-1$
- String dialogRequirementMessage = String.format(dialogGlobalMessage, "Requirement"); //$NON-NLS-1$
-
- if(selectionContainsAllocationTable) {
- MessageDialog dialog = new MessageDialog(Display.getDefault().getActiveShell(), dialogTitle, null, dialogAllocationMessage, MessageDialog.QUESTION_WITH_CANCEL, new String[]{ Messages.ConvertOldTableHandler_ConvertToNewAllocationTable, Messages.ConvertOldTableHandler_ConvertToNewUMLGenericTable, Messages.ConvertOldTableHandler_Cancel }, 0);
- switch(dialog.open()) {
- case 0:
- replaceOldSysMLAllocationTableByNewSysMLAllocationTable = true;
- break;
- case 1:
- replaceOldSysMLAllocationTableByNewSysMLAllocationTable = false;
- break;
- case 2:
- return null;
- }
- }
- if(selectionContainsRequirementsTable) {
- MessageDialog dialog = new MessageDialog(Display.getDefault().getActiveShell(), dialogTitle, null, dialogRequirementMessage, MessageDialog.QUESTION_WITH_CANCEL, new String[]{ Messages.ConvertOldTableHandler_ConvertToNewRequirementTable, Messages.ConvertOldTableHandler_ConvertToNewUMLGenericTable, Messages.ConvertOldTableHandler_Cancel }, 0);
- switch(dialog.open()) {
- case 0:
- replaceOldRequirementTableByNewRequirementTable = true;
- break;
- case 1:
- replaceOldRequirementTableByNewRequirementTable = false;
- break;
- case 2:
- return null;
-
- }
- }
- if(selectionContainsCustomTableKind) {
- convertCustomTabletoGenericTable = MessageDialog.openQuestion(Display.getDefault().getActiveShell(), dialogTitle, Messages.ConvertOldTableHandler_QuestionAboutCustomTable);
- }
-
- destroyOldTable = MessageDialog.openQuestion(Display.getDefault().getActiveShell(), Messages.ConvertOldTableHandler_ConvertOldTableQuestion, Messages.ConvertOldTableHandler_DestroyTheTableAtTheEndQuestion);
- final CompoundCommand convertCommand = new CompoundCommand();
- TransactionalEditingDomain domain = null;
- try {
- domain = ServiceUtilsForEObject.getInstance().getTransactionalEditingDomain(oldTables.get(0));
- } catch (ServiceException e1) {
- Activator.log.error("Can't found the editing domain", e1); //$NON-NLS-1$
- }
- for(final PapyrusTableInstance oldTable : oldTables) {
- final String type = oldTable.getType();
-
- Table newTable = null;
- if(OLD_DEFAULT_TABLE_TYPE.equals(type)) {
- newTable = getCreateUMLGenericTableCommand(oldTable);
- } else if(OLD_REQUIREMENT_TABLE.equals(type)) {
- if(replaceOldRequirementTableByNewRequirementTable) {
- newTable = getCreateSysMLRequirementTableCommand(oldTable);
- } else {
- newTable = getCreateUMLGenericTableCommand(oldTable);
- }
- } else if(OLD_ALLOCATION_TABLE.equals(type)) {
- if(replaceOldSysMLAllocationTableByNewSysMLAllocationTable) {
- newTable = getCreateSysMLAllocationTableCommand(oldTable);
- } else {
- newTable = getCreateUMLGenericTableCommand(oldTable);
- }
- } else if(convertCustomTabletoGenericTable) {
- newTable = getCreateUMLGenericTableCommand(oldTable);
- } else {
- continue;
- }
-
-
- final Resource notationResource = ((ModelSet)oldTable.eResource().getResourceSet()).getAssociatedResource(oldTable, PapyrusNattableModel.TABLE_MODEL_FILE_EXTENSION, true);
- final IPageManager manager = getPageManager(oldTable);//to be sure to have the correct page manager, we do it each time.
- convertCommand.append(getAddToResourceCommand(domain, notationResource, newTable));
- Assert.isNotNull(manager);
- convertCommand.append(getAddToPageManagerCommand(domain, manager, newTable));
- Command tmp = getReplaceExistingTableCommand(domain, oldTable, newTable);
- if(tmp != null) {
- convertCommand.append(tmp);
- }
-
- if(destroyOldTable) {
- convertCommand.append(getDestroyOldTableCommand(domain, oldTable));
- }
- }
-
-
- if(!convertCommand.isEmpty()) {
- domain.getCommandStack().execute(convertCommand);
- }
-
- // clear the selection
- this.oldPapyrusTableInstance.clear();
- }
- return null;
- }
-
- /**
- *
- * @param domain
- * the editing domain
- * @param oldTable
- * an old table
- * @return
- * the command to destroy the old table
- */
- protected Command getDestroyOldTableCommand(final TransactionalEditingDomain domain, final PapyrusTableInstance oldTable) {
- final IEditCommandRequest request = new DestroyElementRequest(domain, oldTable, false);
- final IElementEditService provider = ElementEditServiceUtils.getCommandProvider(oldTable);
- return new GMFtoEMFCommandWrapper(provider.getEditCommand(request));
- }
-
- /**
- *
- * @param oldTable
- * an old table
- * @return
- * a new UML Generic Table initialized with the same rows as the old table
- */
- @SuppressWarnings("deprecation")
- protected Table getCreateUMLGenericTableCommand(final PapyrusTableInstance oldTable) {
- URI uri = NattableConfigurationRegistry.INSTANCE.getConfigurationURI(PAPYRUS_NEW_DEFAULT_TABLE);
- ResourceSet resourceSet = oldTable.eResource().getResourceSet();
- TableConfiguration configuration = (TableConfiguration)resourceSet.getResource(uri, true).getContents().get(0);
- Table newTable = getCreateTableFromConfiguration(oldTable, configuration);
- final AxisManagerRepresentation representation = configuration.getRowHeaderAxisConfiguration().getAxisManagers().get(0);
- for(final EObject element : oldTable.getTable().getElements()) {
- EObjectAxis axis = NattableaxisFactory.eINSTANCE.createEObjectAxis();
- axis.setElement(element);
- axis.setManager(representation);
- newTable.getCurrentRowAxisProvider().getAxis().add(axis);
- }
- return newTable;
- }
-
- /**
- *
- * @param oldTable
- * an old table
- * @return
- * a new SysML Requirement table
- */
- protected Table getCreateSysMLRequirementTableCommand(final PapyrusTableInstance oldTable) {
- URI uri = NattableConfigurationRegistry.INSTANCE.getConfigurationURI(PAPYRUS_NEW_REQUIREMENT_TABLE);
- ResourceSet resourceSet = oldTable.eResource().getResourceSet();
- TableConfiguration configuration = (TableConfiguration)resourceSet.getResource(uri, true).getContents().get(0);
- return getCreateTableFromConfiguration(oldTable, configuration);
- }
-
- /**
- *
- * @param oldTable
- * the old table
- * @return
- * a new SysML Allocation table
- *
- */
- protected Table getCreateSysMLAllocationTableCommand(final PapyrusTableInstance oldTable) {
- URI uri = NattableConfigurationRegistry.INSTANCE.getConfigurationURI(PAPYRUS_NEW_ALLOCATION_TABLE);
- ResourceSet resourceSet = oldTable.eResource().getResourceSet();
- TableConfiguration configuration = (TableConfiguration)resourceSet.getResource(uri, true).getContents().get(0);
- return getCreateTableFromConfiguration(oldTable, configuration);
- }
-
- /**
- *
- * @param oldTable
- * the old table
- * @param tableConfiguration
- * the configuration to use to initialize it
- * @return
- * the new table initialized with its configuration
- */
- @SuppressWarnings("deprecation")
- protected Table getCreateTableFromConfiguration(final PapyrusTableInstance oldTable, final TableConfiguration tableConfiguration) {
- return TableHelper.createTable(tableConfiguration, oldTable.getTable().getContext(), oldTable.getName() + "(Converted)", oldTable.getTable().getDescription()); //$NON-NLS-1$
- }
-
- /**
- *
- * @param domain
- * @param manager
- * @param newTable
- * @return
- * the command to add the new table to the page manager
- */
- protected Command getAddToPageManagerCommand(final TransactionalEditingDomain domain, final IPageManager manager, final Table newTable) {
- return new RecordingCommand(domain) {
-
- @Override
- protected void doExecute() {
- manager.addPage(newTable);
- }
- };
- }
-
- /**
- *
- * @param domain
- * @param notationResource
- * @param newTable
- * @return
- * the command to add the new table to the resouce
- */
-
- protected Command getAddToResourceCommand(final TransactionalEditingDomain domain, final Resource notationResource, final Table newTable) {
- return new RecordingCommand(domain) {
-
- @Override
- protected void doExecute() {
- notationResource.getContents().add(newTable);
- }
- };
- }
-
- /**
- *
- * @param domain
- * the editing domain
- * @param oldTable
- * the old table
- * @param newTable
- * the newTable
- * @return
- * the command to replace referenced to old table by references to new table
- */
- protected Command getReplaceExistingTableCommand(final TransactionalEditingDomain domain, final PapyrusTableInstance oldTable, final Table newTable) {
- final CompoundCommand compoundCommand = new CompoundCommand("Replace Old table Command"); //$NON-NLS-1$
- final ECrossReferenceAdapter crossReferenceAdapter = CrossReferenceAdapter.getCrossReferenceAdapter(oldTable);
- Collection<Setting> settings = crossReferenceAdapter.getNonNavigableInverseReferences(oldTable);
-
- //replace the references to the old table to reference to the new table
- for(final Setting setting : settings) {
- EStructuralFeature feature = setting.getEStructuralFeature();
- if(feature != DiPackage.eINSTANCE.getPageRef_EmfPageIdentifier()) {//we replace all references excepted references in the page manager
- Command cmd = new RecordingCommand(domain) {
-
- /**
- *
- * @see org.eclipse.emf.transaction.RecordingCommand#doExecute()
- *
- */
- @Override
- protected void doExecute() {
- EcoreUtil.replace(setting, oldTable, newTable);
- }
- };
- compoundCommand.append(cmd);
- }
- }
- if(compoundCommand.isEmpty()) {
- return null;
- }
- return compoundCommand;
- }
-
-
- /**
- *
- * @param eobject
- * an eobject
- * @return
- * the page manager
- */
- protected IPageManager getPageManager(final EObject eobject) {
- IPageManager manager = null;
- try {
- manager = ServiceUtilsForEObject.getInstance().getIPageManager(eobject);
- } catch (ServiceException e) {
- Activator.log.error(e);
- }
- return manager;
- }
-
- /**
- *
- * @see org.eclipse.core.commands.AbstractHandler#setEnabled(java.lang.Object)
- *
- * @param evaluationContext
- */
- @Override
- public void setEnabled(Object evaluationContext) {
- this.oldPapyrusTableInstance = new ArrayList<PapyrusTableInstance>();
- if(evaluationContext instanceof IEvaluationContext) {
- Object selection = ((IEvaluationContext)evaluationContext).getDefaultVariable();
- if(selection instanceof Collection<?>) {
- List<?> currentSelection = (selection instanceof List<?>) ? (List<?>)selection : new java.util.ArrayList<Object>((Collection<?>)selection);
- if(currentSelection.size() == 1) {
- Object current = currentSelection.get(0);
- if(current instanceof IAdaptable) {
- EObject eobject = (EObject)((IAdaptable)current).getAdapter(EObject.class);
- if(eobject instanceof PapyrusTableInstance) {
-
- this.oldPapyrusTableInstance.add((PapyrusTableInstance)eobject);
- }
- setBaseEnabled(this.oldPapyrusTableInstance != null && this.oldPapyrusTableInstance.size() == 1);
- return;
- }
- }
- }
- }
- setBaseEnabled(false);
- }
-}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/Messages.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/Messages.java
deleted file mode 100644
index b428d500191..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/Messages.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.papyrus.uml.nattable.converter.messages;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.papyrus.uml.nattable.converter.messages.messages"; //$NON-NLS-1$
-
- public static String ConvertOldTableHandler_AdvicesForUser;
-
- public static String ConvertOldTableHandler_Cancel;
-
- public static String ConvertOldTableHandler_ConvertOldTableQuestion;
-
- public static String ConvertOldTableHandler_ConvertToNewAllocationTable;
-
- public static String ConvertOldTableHandler_ConvertToNewRequirementTable;
-
- public static String ConvertOldTableHandler_ConvertToNewUMLGenericTable;
-
- public static String ConvertOldTableHandler_DestroyTheTableAtTheEndQuestion;
-
- public static String ConvertOldTableHandler_DialogMessage;
-
- public static String ConvertOldTableHandler_QuestionAboutCustomTable;
- static {
- // initialize resource bundle
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- }
-}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/messages.properties b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/messages.properties
deleted file mode 100644
index 2aaf1bcc60a..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable.converter/src/org/eclipse/papyrus/uml/nattable/converter/messages/messages.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-ConvertOldTableHandler_AdvicesForUser=We advice you to do a copy of your model before to convert it. \n \n Continue?
-ConvertOldTableHandler_Cancel=Cancel
-ConvertOldTableHandler_ConvertOldTableQuestion=Convert Old Table Question
-ConvertOldTableHandler_ConvertToNewAllocationTable=Convert to new Allocation Table
-ConvertOldTableHandler_ConvertToNewRequirementTable=Convert to new Requirement Table
-ConvertOldTableHandler_ConvertToNewUMLGenericTable=Convert to UML Generic Table
-ConvertOldTableHandler_DestroyTheTableAtTheEndQuestion=Destroy the tables at the end of this process?
-ConvertOldTableHandler_DialogMessage=Your selection contains old %s Table. This old table was filled by the user, the new version is filled dynamically, so you may lose rows converting it. You could convert it too in new Generic UML Table.
-ConvertOldTableHandler_QuestionAboutCustomTable=Your selection contains custom table. I only can convert them into UML Generic Table. \n \n Do you accept this conversion?
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/editor/AbstractEMFNattableEditor.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/editor/AbstractEMFNattableEditor.java
index 8f301af0ce2..c61647079cf 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/editor/AbstractEMFNattableEditor.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/src/org/eclipse/papyrus/infra/nattable/common/editor/AbstractEMFNattableEditor.java
@@ -14,11 +14,14 @@
package org.eclipse.papyrus.infra.nattable.common.editor;
+import java.io.IOException;
+
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
@@ -58,6 +61,13 @@ public abstract class AbstractEMFNattableEditor extends EditorPart {
private PartNameSynchronizer synchronizer;
/**
+ * the workspace preference store for this table editor
+ */
+ @SuppressWarnings("unused")
+ //not yet used in the table
+ private PreferenceStore workspacePreferenceStore;
+
+ /**
* @param servicesRegistry
* @param rawModel
*
@@ -66,8 +76,69 @@ public abstract class AbstractEMFNattableEditor extends EditorPart {
this.servicesRegistry = servicesRegistry;
this.tableManager = new NattableModelManager(rawModel);
this.synchronizer = new PartNameSynchronizer(rawModel);
+ this.workspacePreferenceStore = getWorkspaceViewerPreferenceStore();
+ }
+
+ /**
+ * Returns the workspace viewer <code>PreferenceStore</code>
+ *
+ * @return the workspace viewer <code>PreferenceStore</code>
+ */
+ public PreferenceStore getWorkspaceViewerPreferenceStore() {
+ //not yet used by tables
+ return null;
+
+ // if(this.workspacePreferenceStore != null) {
+ // return this.workspacePreferenceStore;
+ // } else {
+ // // Try to load it
+ // IPath path = Activator.getDefault().getStateLocation();
+ // String id = getIdStr(this.tableManager.getTable());
+ //
+ // String fileName = path.toString() + "/" + id;//$NON-NLS-1$
+ // java.io.File file = new File(fileName);
+ // this.workspacePreferenceStore = new PreferenceStore(fileName);
+ // if(file.exists()) {
+ // // Load it
+ // try {
+ // this.workspacePreferenceStore.load();
+ // } catch (Exception e) {
+ // // Create the default
+ // addDefaultPreferences();
+ // }
+ // } else {
+ // // Create it
+ // addDefaultPreferences();
+ // }
+ // return this.workspacePreferenceStore;
+ // }
}
+ // /**
+ // * returns the unique GUID of the view
+ // *
+ // * @param view
+ // * the view
+ // * @return String the GUID of a view (constant)
+ // */
+ // private static String getIdStr(Table table) {
+ // Resource resource = table.eResource();
+ // if(resource instanceof XMLResource) {
+ // String id = ((XMLResource)resource).getID(table);
+ // if(id != null) {
+ // return id;
+ // }
+ // }
+ //
+ // // Remain compatible with previous behavior.
+ // return StringStatics.BLANK;
+ // }
+
+ // not used : add a workspace preference to the table
+ // private void addDefaultPreferences() {
+ // final IPreferenceStore globalPreferenceStore = Activator.getDefault().getPreferenceStore();
+ // String tableKind = this.tableManager.getTable().getTableConfiguration().getType();
+ // }
/**
*
@@ -134,7 +205,7 @@ public abstract class AbstractEMFNattableEditor extends EditorPart {
}
@Override
- public Object getAdapter(final Class adapter) {
+ public Object getAdapter(@SuppressWarnings("rawtypes") final Class adapter) {
if(adapter == INattableModelManager.class) {
return this.tableManager;
}
@@ -153,11 +224,22 @@ public abstract class AbstractEMFNattableEditor extends EditorPart {
@Override
public void dispose() {
+ saveLocalPreferenceStoreValues();
this.tableManager.dispose();
this.synchronizer.dispose();
super.dispose();
}
+ protected void saveLocalPreferenceStoreValues() {
+ // Write the settings, if necessary
+ try {
+ if(getWorkspaceViewerPreferenceStore() != null && getWorkspaceViewerPreferenceStore().needsSaving())
+ getWorkspaceViewerPreferenceStore().save();
+ } catch (IOException ioe) {
+ Activator.log.warn("Preferences can' be saved"); //$NON-NLS-1$
+ }
+ }
+
/**
* A class taking in charge the synchronization of the partName and the table name.
* When table name change, the other is automatically updated.
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/META-INF/MANIFEST.MF
index 19f3e33ae63..d5de92709d6 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/META-INF/MANIFEST.MF
@@ -5,7 +5,6 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.infra.services.controlmode;bundle-version="1.0.0",
org.eclipse.papyrus.infra.emf;bundle-version="1.0.0",
org.eclipse.gmf.runtime.emf.commands.core,
- org.eclipse.emf.facet.widgets.nattable.instance,
org.eclipse.papyrus.infra.nattable.model;bundle-version="1.0.0",
org.eclipse.uml2.uml,
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF
index 0c3ff4c6a4f..4d5061bd4b3 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF
@@ -37,6 +37,7 @@ Export-Package: org.eclipse.papyrus.infra.nattable,
org.eclipse.papyrus.infra.nattable.nattableconfiguration,
org.eclipse.papyrus.infra.nattable.painter,
org.eclipse.papyrus.infra.nattable.paste,
+ org.eclipse.papyrus.infra.nattable.preferences,
org.eclipse.papyrus.infra.nattable.provider,
org.eclipse.papyrus.infra.nattable.reorder,
org.eclipse.papyrus.infra.nattable.tester,
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/importTablePapyrusWizban.png b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/importTablePapyrusWizban.png
new file mode 100644
index 00000000000..2760811cabf
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/importTablePapyrusWizban.png
Binary files differ
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/import_wiz_16x16-papyrusColor.gif b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/import_wiz_16x16-papyrusColor.gif
new file mode 100644
index 00000000000..c7be463bcd2
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/import_wiz_16x16-papyrusColor.gif
Binary files differ
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/warning.gif b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/warning.gif
new file mode 100644
index 00000000000..2f1c5a8fa7b
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/icons/warning.gif
Binary files differ
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/plugin.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/plugin.xml
index 98099b406d9..cc29f086118 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/plugin.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/plugin.xml
@@ -13,6 +13,10 @@
allPopups="true"
locationURI="popup:org.eclipse.ui.popup.any">
<command
+ commandId="org.eclipse.papyrus.infra.nattable.import.command"
+ style="push">
+ </command>
+ <command
commandId="org.eclipse.papyrus.infra.nattable.invert.axis"
style="toggle">
<visibleWhen>
@@ -1051,6 +1055,36 @@
commandId="org.eclipse.papyrus.infra.nattable.autoresize.rows"
icon="icons/auto_resize_row.png">
</image>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ categoryId="org.eclipse.papyrus.infra.nattable.category"
+ defaultHandler="org.eclipse.papyrus.infra.nattable.handler.ImportTableHandler"
+ description="Import a file into a table"
+ id="org.eclipse.papyrus.infra.nattable.import.command"
+ name="Import from file">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commandImages">
+ <image
+ commandId="org.eclipse.papyrus.infra.nattable.import.command"
+ icon="icons/import_wiz_16x16-papyrusColor.gif">
+ </image>
+ </extension>
+ <extension
+ point="org.eclipse.ui.importWizards">
+ <wizard
+ category="org.eclipse.papyrus.infra.core.importcategory"
+ class="org.eclipse.papyrus.infra.nattable.wizard.pages.ImportTableWizard"
+ icon="icons/import_wiz_16x16-papyrusColor.gif"
+ id="org.eclipse.papyrus.infra.nattable.import.category"
+ name="Import In Open Table">
+ <description>
+ This wizard allows to import a table.
+ </description>
+ </wizard>
</extension>
</plugin>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/Activator.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/Activator.java
index db654b72350..2117b5c6af2 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/Activator.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/Activator.java
@@ -13,7 +13,10 @@
*****************************************************************************/
package org.eclipse.papyrus.infra.nattable;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.papyrus.infra.nattable.preferences.PapyrusTablePreferenceStore;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -31,6 +34,12 @@ public class Activator extends AbstractUIPlugin {
public static LogHelper log;
/**
+ * Storage for preferences.
+ */
+ protected IPreferenceStore papyrusPreferenceStore;
+
+
+ /**
* The constructor
*/
public Activator() {
@@ -66,4 +75,19 @@ public class Activator extends AbstractUIPlugin {
return plugin;
}
+ /**
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#getPreferenceStore()
+ *
+ * @return
+ */
+ @Override
+ public IPreferenceStore getPreferenceStore() {
+ // Create the preference store lazily.
+ if(this.papyrusPreferenceStore == null) {
+ this.papyrusPreferenceStore = new PapyrusTablePreferenceStore(new InstanceScope(), getBundle().getSymbolicName());
+ }
+ return this.papyrusPreferenceStore;
+ }
+
}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusDefaultEditBindings.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusDefaultEditBindings.java
new file mode 100644
index 00000000000..794cbf5f2e6
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusDefaultEditBindings.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ * 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:
+ *
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.configuration;
+
+import org.eclipse.nebula.widgets.nattable.config.AbstractUiBindingConfiguration;
+import org.eclipse.nebula.widgets.nattable.edit.action.CellEditDragMode;
+import org.eclipse.nebula.widgets.nattable.edit.action.KeyEditAction;
+import org.eclipse.nebula.widgets.nattable.edit.action.MouseEditAction;
+import org.eclipse.nebula.widgets.nattable.edit.config.DefaultEditBindings;
+import org.eclipse.nebula.widgets.nattable.grid.GridRegion;
+import org.eclipse.nebula.widgets.nattable.painter.cell.CheckBoxPainter;
+import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.CellEditorMouseEventMatcher;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.CellPainterMouseEventMatcher;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.KeyEventMatcher;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.LetterOrDigitKeyEventMatcher;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
+import org.eclipse.swt.SWT;
+
+/**
+ *
+ * @author VL222926
+ * Copy of {@link DefaultEditBindings} excepted for edition on double click replacing edition on single click
+ */
+public class PapyrusDefaultEditBindings extends AbstractUiBindingConfiguration {
+
+ /**
+ *
+ * @see org.eclipse.nebula.widgets.nattable.config.IConfiguration#configureUiBindings(org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry)
+ *
+ * @param uiBindingRegistry
+ */
+ @Override
+ public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
+ //configure the space key to activate a cell editor via keyboard
+ //this is especially useful for changing the value for a checkbox
+ uiBindingRegistry.registerKeyBinding(new KeyEventMatcher(SWT.NONE, 32), new KeyEditAction());
+ uiBindingRegistry.registerKeyBinding(new KeyEventMatcher(SWT.NONE, SWT.F2), new KeyEditAction());
+ uiBindingRegistry.registerKeyBinding(new LetterOrDigitKeyEventMatcher(), new KeyEditAction());
+ uiBindingRegistry.registerKeyBinding(new LetterOrDigitKeyEventMatcher(SWT.SHIFT), new KeyEditAction());
+
+ uiBindingRegistry.registerDoubleClickBinding(new CellEditorMouseEventMatcher(GridRegion.BODY), new MouseEditAction());
+
+ uiBindingRegistry.registerMouseDragMode(new CellEditorMouseEventMatcher(GridRegion.BODY), new CellEditDragMode());
+
+ uiBindingRegistry.registerFirstSingleClickBinding(new CellPainterMouseEventMatcher(GridRegion.BODY, MouseEventMatcher.LEFT_BUTTON, CheckBoxPainter.class), new MouseEditAction());
+
+ uiBindingRegistry.registerFirstMouseDragMode(new CellPainterMouseEventMatcher(GridRegion.BODY, MouseEventMatcher.LEFT_BUTTON, CheckBoxPainter.class), new CellEditDragMode());
+
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusGridLayerConfiguration.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusGridLayerConfiguration.java
index 13506c41440..32c99976c25 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusGridLayerConfiguration.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/configuration/PapyrusGridLayerConfiguration.java
@@ -47,8 +47,18 @@ public class PapyrusGridLayerConfiguration extends DefaultGridLayerConfiguration
/**
*
+ * @see org.eclipse.nebula.widgets.nattable.grid.layer.config.DefaultGridLayerConfiguration#addEditingUIConfig()
+ *
+ */
+ @Override
+ protected void addEditingUIConfig() {
+ addConfiguration(new PapyrusDefaultEditBindings());
+ }
+
+ /**
+ *
* @see org.eclipse.nebula.widgets.nattable.grid.layer.config.DefaultGridLayerConfiguration#addExcelExportUIBindings()
- *
+ *
*/
@Override
protected void addExcelExportUIBindings() {
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dialog/PasteImportStatusDialog.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dialog/PasteImportStatusDialog.java
new file mode 100644
index 00000000000..de2bec5c3d0
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/dialog/PasteImportStatusDialog.java
@@ -0,0 +1,97 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ * 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:
+ *
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.dialog;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.infra.nattable.messages.Messages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ *
+ * @author VL222926
+ * This dialog is used to display paste error status
+ */
+public class PasteImportStatusDialog extends MessageDialog {
+
+ /**
+ * Message displayed in the paste dialog
+ */
+ public static final String HOW_TO_PASTE_MESSAGE = Messages.PasteImportStatusDialog_PasteConfigurationMessage;
+
+ /**
+ * Title for all dialog used by this class
+ */
+ public static final String DIALOG_TITLE = Messages.PasteImportStatusDialog_ImportPasteDialogTitle;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param parentShell
+ * the shell parent to use
+ * @param dialogMessage
+ * the message to display
+ */
+ public PasteImportStatusDialog(final Shell parentShell, final String dialogMessage) {
+ super(parentShell, DIALOG_TITLE, getPapyrusIcon(), dialogMessage, MessageDialog.ERROR, new String[]{ IDialogConstants.OK_LABEL }, 0);
+ }
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param parentShell
+ * the shell parent to use
+ * @param dialogMessage
+ * the message to display
+ * @param dialogImageType
+ */
+ public PasteImportStatusDialog(final Shell parentShell, final String dialogMessage, final int dialogImageType) {
+ super(parentShell, DIALOG_TITLE, getPapyrusIcon(), dialogMessage, dialogImageType, new String[]{ IDialogConstants.OK_LABEL }, 0);
+ }
+
+ /**
+ *
+ * @see org.eclipse.jface.dialogs.MessageDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ *
+ * @param parent
+ * @return
+ */
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ final Composite comp = (Composite)super.createDialogArea(parent);
+ final CLabel label = new CLabel(comp, SWT.NONE);
+ label.setText(HOW_TO_PASTE_MESSAGE);
+ label.setImage(getInfoImage());
+ return comp;
+ }
+
+
+ /**
+ *
+ * @return
+ * the papyrus icon
+ */
+ private static final Image getPapyrusIcon() {
+ return org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImage("icons/papyrus.png"); //$NON-NLS-1$
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/AbstractTableHandler.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/AbstractTableHandler.java
index e03aa979278..999546d41aa 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/AbstractTableHandler.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/AbstractTableHandler.java
@@ -28,13 +28,13 @@ import org.eclipse.papyrus.infra.nattable.manager.axis.IAxisManager;
import org.eclipse.papyrus.infra.nattable.manager.table.INattableModelManager;
import org.eclipse.papyrus.infra.nattable.utils.TableEditingDomainUtils;
import org.eclipse.papyrus.infra.nattable.utils.TableSelectionWrapper;
+import org.eclipse.papyrus.infra.tools.util.WorkbenchPartHelper;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
/**
@@ -66,7 +66,7 @@ public abstract class AbstractTableHandler extends AbstractHandler {
* the current active part
*/
protected IWorkbenchPart getActivePart() {
- return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
+ return WorkbenchPartHelper.getCurrentActiveWorkbenchPart();
}
/**
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/ImportTableHandler.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/handler/ImportTableHandler.java
new file mode 100644
index 00000000000..a2079d3a91f
--- /dev/null
+++ b/