Donald,
As for the first, I pretty much got that
from the code but somewhere along the line I lost my items in the dropdown. I
can back out of it and find where I messed up so I’m not too concerned with
that. As for the second, I was thinking more in terms of adding Javadoc right in
the code so that when browsing or using the Eclipse Javadoc view there would be
more documentation for the developer. There is some but it is lacking in most
places. As long as the code isn’t modified and all that is added is Javadoc
comments, would one still go through the patch process?
Also one interesting observation I noticed
from your example but haven’t had time to investigate as of yet: If you select
a customization either through the Table Customization dialog or from the
dropdown menu on the toolbar, then it appears to allow column moving and
sorting on any column. However, if you select either of the custimizations from
their icon on the toolbar then trying to sort any column give this message in
the console:
Dec 10, 2010 11:34:14 AM
org.eclipse.nebula.widgets.xviewer.util.internal.XViewerLog log
WARNING: XViewer Conversion for saved
Customization "Name Description" dropped unresolved SORTING column
Name/Id: "xviewer.test.name". Delete customization and re-save to
resolve.
Dec 10, 2010 11:34:14 AM
org.eclipse.nebula.widgets.xviewer.util.internal.XViewerLog log
WARNING: XViewer Conversion for saved
Customization "Name Description" dropped unresolved SORTING column
Name/Id: "xviewer.test.name". Delete customization and re-save to
resolve.
Dec 10, 2010 11:34:14 AM
org.eclipse.nebula.widgets.xviewer.util.internal.XViewerLog log
WARNING: XViewer Conversion for saved
Customization "Name Description" dropped unresolved SORTING column
Name/Id: "xviewer.test.name". Delete customization and re-save to
resolve.
Dec 10, 2010 11:34:14 AM
org.eclipse.nebula.widgets.xviewer.util.internal.XViewerLog log
WARNING: XViewer Conversion for saved
Customization "Name Description" dropped unresolved SORTING column
Name/Id: "xviewer.test.name". Delete customization and re-save to
resolve.
Dec 10, 2010 11:34:14 AM org.eclipse.nebula.widgets.xviewer.util.internal.XViewerLog
log
WARNING: XViewer Conversion for saved
Customization "Name Description" dropped unresolved SORTING column
Name/Id: "xviewer.test.name". Delete customization and re-save to
resolve.
Dec 10, 2010 11:34:14 AM
org.eclipse.nebula.widgets.xviewer.util.internal.XViewerLog log
WARNING: XViewer Conversion for saved
Customization "Name Description" dropped unresolved SORTING column
Name/Id: "xviewer.test.name". Delete customization and re-save to
resolve.
Only much longer than what I pasted here
and the sorting gets ignored. Column moving however seems unaffected.
I am taking vacation after today for the
rest of the year but will be back at it when I return. Thanks for your help
From:
nebula-dev-bounces@xxxxxxxxxxx [mailto:nebula-dev-bounces@xxxxxxxxxxx] On Behalf Of Dunne, Donald G
Sent: Friday, December 10, 2010
9:07 AM
To: Nebula
Dev
Subject: Re: [nebula-dev] Ordering
columns programmatically?
Mike:
First:
The original purpose of table
customizations was to allow the user in real-time to organize their table and
persist these customizations for selection later.
Your use case, which is a good one also,
is for the developer to provide a canned set of layouts to allow the user to
select. These can be provided through the same mechanism as the
saving/loading of the user customizations.
To provide either case, you want to extend
XViewerCustomizations and provide it to your XViewer through your
XViewerFactory via the getXViewerCustomizations method.
See the example MyXViewerCustomizations
and MyXViewerFactory classes.
MyXViewerCustomizations provides the two
"canned" customizations through getSavedCustDatas(). Implementing
the rest of the methods provides the other case where the user can create their
own and persist to filesystem, database, workspace or wherever the developer
wants to persist.
Second:
I have started some documentation at http://wiki.eclipse.org/Nebula_XViewer_Getting_Started,
but it is certainly lacking. I wouldn't mind you taking a crack at
enhancing the information as you learn about XViewer. It's definitely on
my list to get done, but other things always seem to get in the way.
:>)
Regarding updates to the code. The
correct method is for interested parties to provide patches through
bugzilla. Time permitting, one of the XViewer committers can review and
apply the patches.
From:
nebula-dev-bounces@xxxxxxxxxxx [mailto:nebula-dev-bounces@xxxxxxxxxxx] On Behalf Of Stapleton, Mike
Sent: Thursday, December 09, 2010
3:26 PM
To: Nebula
Dev
Subject: Re: [nebula-dev] Ordering
columns programmatically?
Donald,
Great stuff! I got it working with our
project EMF model and created 4 different ToolItems to represent my data
groupings. I have two questions on the implementation. First, I fail to see the
implementation that handles adding menu items to the dropdown list (your
example has “Name Status” and “Name Description”). Second, as a result of the
first (I’m assuming here) my CustomizeData objects don’t show up in the Table
Customization like yours did (again, the same two that were in the dropdown)? I
fail to wee where I lost this? The only thing I removed was the refresh button
because I am using EMF data binding instead. I tested that removal on your
example and it had no effect on ToolItems in you dropdown nor did it remove
them from the Table Customization so I’m confident that didn’t affect anything?
There is a lot of code and functionality in XViewer and yes examples certainly
explain things. However, you can’t provide examples for everything you can do
with it and here is where documentation would be useful. If I could find time
to add some Java Doc to the classes at least to get the process started, what
would be the process of getting the classes promoted to the repository be? I’ve
kind of been following some of the additions and changes that others have
contributed that last couple of months. What would be nice is to maybe have
omething like separate repository branches so changes could be committed
without affecting anything else. Then the changes could be reviewed and
accepted or rejected from the repository time permitting? What do you think?
Mike
From:
nebula-dev-bounces@xxxxxxxxxxx [mailto:nebula-dev-bounces@xxxxxxxxxxx] On Behalf Of Dunne, Donald G
Sent: Wednesday, December 08, 2010
4:07 PM
To: Nebula
Dev
Subject: Re: [nebula-dev] Ordering
columns programmatically?
I've added an example of this to the
example package withing the xviewer plugin. Sync up the latest source
code to see it.
You can run MyXViewerTest.java (in
Eclipse, right-click -> Run-As -> Java Application) to see it work.
The customization icon allows the user to
easily toggle between the table default and their stored options.
Also added MyDefaultCustomizations to
answer your question, Mike, on how to build a CustomizeData object to be sent
in upon user selecting to change. The example also has two items at the
top to show how they can be used.
To also answer your question here:
public static CustomizeData
getCompletionCustomization() {
CustomizeData data = "" CustomizeData();
data.setName("Name Status");
data.setGuid(XViewerLib.generateGuidStr());
data.setNameSpace(MyXViewerFactory.COLUMN_NAMESPACE);
XViewerColumn nameColumn = MyXViewerFactory.Name_Col.copy();
nameColumn.setSortForward(true);
nameColumn.setWidth(175);
nameColumn.setShow(true);
data.getColumnData().getColumns().add(nameColumn);
XViewerColumn percentCol = MyXViewerFactory.Completed_Col.copy();
percentCol.setWidth(150);
percentCol.setShow(true);
data.getColumnData().getColumns().add(percentCol);
return data;
}
Hope that helps,
Don
From:
nebula-dev-bounces@xxxxxxxxxxx [mailto:nebula-dev-bounces@xxxxxxxxxxx] On Behalf Of Stapleton, Mike
Sent: Tuesday, December 07, 2010
11:18 AM
To: Nebula
Dev
Subject: Re: [nebula-dev] Ordering
columns programmatically?
Thanks Donald,
I’ve been looking at the code for
CustomizeManager, CustomizeData, XViewerColumn, and XViewerFactory to try and
determine the best way to go about creating CustomizeData objects to represent
my data groupings. Currently in the example code the columns are created and
registered in the factory class. As well, what you see in the table are those
columns created and registered from the factory class. Are you saying that I should
create XViewerColumns and add then to a CustomizeData object along with any
filters and sorters I might want and then just load a customization selected by
the user as described below. I’m failing to see the connection between the
columns defined in the XViewerFactory and those defined from a CustomizeData
object? Do all columns need to be defined from the MyXViewerFactory up front
and then added to a CustomizeData object to create the different data views?
Could you elaborate a little on this process?
TIA,
Mike
From:
nebula-dev-bounces@xxxxxxxxxxx [mailto:nebula-dev-bounces@xxxxxxxxxxx] On Behalf Of Dunne, Donald G
Sent: Friday, December 03, 2010
8:33 AM
To: Nebula
Dev
Subject: Re: [nebula-dev] Ordering
columns programmatically?
Since an XViewer customization includes
width, sorting, filtering and etc, you can't just reorder the columns, you have
to set a full CustomizationData object. From XViewer class, you can
getCustomizationMgr().loadCustomization(CustomizeData)
Your pulldown selection can just select
the appropriate CustomizeData and set it.
From:
nebula-dev-bounces@xxxxxxxxxxx [mailto:nebula-dev-bounces@xxxxxxxxxxx] On Behalf Of Stapleton, Mike
Sent: Wednesday, December 01, 2010
9:31 AM
To: Nebula
Dev
Subject: [nebula-dev] Ordering
columns programmatically?
Maybe someone can help me here? I want to be able to build
different pre-defined data groupings. I have a dropdown which allows the user
to select the group of data they want to see. In the process of doing this the
order of the columns needs to change to match the new data and grouping. This
requires me to add/delete some columns as well as reorder some columns. I
provide content and label providers to define each data grouping and reset them
and the input when the user makes a selection from the Group By dropdown menu.
I added a function in my extension of the XViewer Factory that calls
clearColumnRegistration and then I re-register the columns in the order I want.
Problem is that the columns never reorder. The new content and label providers
appear to get set and my data gets re-ordered but the column headers remain in
the same position? So the headers don’t match the column data? I now you can
hide and reorder columns from the Customize Dialog and by just dragging columns
to a different position but I’m interested in doing this programmatically to
get the data the user really wants to see and the way they want to see it. I’m
I going about this in the right way or am I missing something? Anyone try
something like this yet? Any explanation of why I can’t reorder the columns by
clearing them from the registration and re-registering then would be helpful.
TIA,
Michael