Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 334240

Summary: [Enhancement] [Table Editor] Papyrus shall support Tabular Editors
Product: [Modeling] Papyrus Reporter: Vincent Lorenzo <vincent.lorenzo>
Component: TableAssignee: Vincent Lorenzo <vincent.lorenzo>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: eclipse-bugzilla, klaas.gadeyne, raphael.faudou, sebastien.gerard, vhanniet
Version: 0.7.0   
Target Milestone: 0.8.0   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on: 335020, 336917, 337089, 337097, 337808, 337809, 339650, 339651, 340131, 340132, 343430, 344461, 344465, 344472, 344602, 344825, 344840, 344921, 344925, 344940, 345237, 345418, 345665, 345698, 345730, 346656, 346733, 346988, 352852, 356614, 357071, 357086, 357100, 357346, 357383, 358264, 371616    
Bug Blocks: 357447    

Description Vincent Lorenzo CLA 2011-01-13 06:01:30 EST
Papyrus shall support Tabular Editor
Requirements : 
The tabular editors should provider editors : 
Developer can plug in their own cell editor for any EType
User can edit cells containing a EString value
User can edit cells containing a EInt value
User can edit cells containing a EFloat value
User can edit cells containing a EBoolean value
User can undo and redo the edition of the table content
User can edit cells containing a EFloatObject value
User can edit cells containing a multi-lines EString value
User can select a value for UNary references from a single-selectable object chooser
User can edit cells containing a EChar value
User can edit cells containing a EDouble value
User can edit cells containing a EBigDecimal value
User can edit cells containing a EBigInteger value
User can edit cells containing a ELong value
User can edit cells containing a EShort value
User can edit cells containing a EBooleanObject value
User can edit cells containing a ECharacterObject value
User can edit cells containing a EDoubleObject value
User can edit cells containing a EIntegerObject value
User can edit cells containing a ELongObject value
User can edit cells containing a EShortObject value
User can select values for Nary references from a multi-selectable object chooser
User can edit cells containing a EByte value
User can edit cells containing a EByteObject value
User can edit cells containing a EEnum value
User can select a value for UNary references from a single-selectable dropdown list
User can add/remove/modify/reorder values in cells containing arrays
User can drag&drop instances of EObject to cells associated to a EReference
Developer can associate a query to the editor declaration

The user can select a set of elements in any browser and view them in the table view (pop-up action on EObject). 
The user can select a set of elements in a Papyrus diagram and view them in the table view. 
When a table already exists the user can add and remove lines (model elements) from the table.
A user can execute a query and view the result in the table view. 
To be able to create or delete model element from the table view
A developer can declare a type of table (for example "the table of requirement satisfaction")
If a table type is defined the developer can force the cell editors (to avoid conflicts)
User can drag&drop instances of EObject to cells associated to a EReference 
User can add/remove/modify/reorder values in cells containing arrays
The user can copy a part of the EMF Facet table and paste it in Excel and in notepad
Add the headers in a copy of a part of the table
Eclass: To be able to apply the following customization properties to the cells : background color, instanceIcon, isBold, isItalic, isStruckthrough, isUnderlined, label, textColor, textFontName.
Facet: To be able to apply the following customization properties to the cells : overlayIcon, stickerIcon

The user must be able to save which EMF objects are contained in a table
The user can add a column and fill it with the result of a query
The user must be able to save the query column (dep)
The user can hide columns
A user documentation must explain how to use the features implemented in this project
A developer documentation must explain how to use the API developed in the project
The user must be able to save the column order
The user must be able to save the hidden columns (dep)
The user must be able to save the column sizes
Comment 1 Vincent Lorenzo CLA 2011-02-09 05:13:38 EST
*** Bug 330179 has been marked as a duplicate of this bug. ***
Comment 2 Vincent Lorenzo CLA 2011-02-11 06:53:17 EST
R3953, 3954, 4000, 4001, 4002, 4003 : 
	First commits for the table editors. 2 plugins : 
	oep.table.common which provides a default table editor
	ope.table.menu which provides some menus for the tables
	
These plugins are commited on /trunk/incoming
Currently, they can't compile, because they need EMF-Facet plugins which are not yet available on SVN
Comment 3 Vincent Lorenzo CLA 2011-02-22 09:47:20 EST
From R4059 to R4074 : 
	I share the following projects : 
		oep.table.common : common plugin for tables
		oep.table.default : a default table
		oep.sysml.table.requirement
		oep.sysml.table.allocation
		oep.table.modelexplorer : allow to display tables in the model explorer + provides handlers for tables : rename, duplicate, ...
		
	minor changes in oep.modelexplorer
Comment 4 Vincent Lorenzo CLA 2011-02-23 09:08:04 EST
In R4079 : 

Remove the action "Edit description" from the plugin oep.table.menu

Add the possibility to edit the description in the table.
Add the display of the context
Comment 5 Vincent Lorenzo CLA 2011-02-24 08:31:49 EST
In R4081-4082 : 
	Externalize Strings
	Add Header
	Add the popup menu for the Table
	
Modified plugins : 
	- oep.table.common
	- oep.table.menu
	- oep.table.modelexplorer
	- oep.table.default
Comment 6 Vincent Lorenzo CLA 2011-03-10 09:02:24 EST
In R4242 : share the project org.eclipse.papyrus.nattable.instance
This project provides the model for the Papyrus Table. It adds the following feature to the EMF-Facet nattable : name, type, isSynchronized.
We don't use the Object parameter of the EMF-Facet table for 2 reasons : 
	1/ this object can not be serialized in XML (it's an Object and not an EObject in the Model)
	2/ The EMF-Facet team said me that this object should be transient.
We don't use a generalization between Papyrus Table and EMF-Facet table, because their .impl package is not visible.
Comment 7 Vincent Lorenzo CLA 2011-03-10 09:06:43 EST
In R4246 : 

Update the following plugins, using the new model for table (provided by oep.nattable.instance) : 
   oep.modelexplorer
   oep.sysml.table.allocation
   oep.sysml.table.requirement
   oep.table.common
   oep.table.default
   oep.table.modelexplorer
Comment 8 Vincent Lorenzo CLA 2011-03-11 03:43:48 EST
In R4283 : 
Remove unused dependencies
Change the table model representation for the filling queries.
Add the methods to manage filling queries and synchronization during the creation of the table. (the synchronization itself is not yet done)
Comment 9 Vincent Lorenzo CLA 2011-05-03 05:04:21 EDT
In R4611 : remove the action AddInCurrentTable from oep.table.menu. Now, we have a drap&drop, so this action is obsolete.
Comment 10 Vincent Lorenzo CLA 2011-05-03 05:53:56 EDT
In R4613 : add a method to hide default columns during the table creation ([Label], [Metaclass], /eContainer)
Comment 11 Vincent Lorenzo CLA 2011-05-11 09:09:34 EDT
In R4653 : 
	- remove the dependencies on PapyrusObservableValue
Comment 12 Vincent Lorenzo CLA 2011-05-16 10:34:09 EDT
In R4699 : change the path for the icon table.png (problem with the path using the icon defined in the emf-facet plugin.)
Comment 13 Camille Letavernier CLA 2014-03-13 13:14:48 EDT
All subtasks have either been closed as invalid, or implemented in the new table version.

I close this task