This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 212949

Summary: Remote sync: local and removed paths cannot be swapped
Product: php Reporter: Tomas Mysik <tmysik>
Component: FTP SupportAssignee: Tomas Mysik <tmysik>
Status: VERIFIED FIXED    
Severity: normal CC: psomol, vriha
Priority: P3    
Version: 7.2   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:
Attachments: added table headers for the first and third column
column <info> header icon
column <operation> header icon
windows screenshot
new swap and info icons demo
redrawn table header icons

Description Tomas Mysik 2012-05-24 11:39:49 UTC
Currently, the columns are:
<remote> <operation> <local>

It is not possible to swap <remote> and <local> columns.
Comment 1 Tomas Mysik 2012-05-24 12:26:24 UTC
Petře, do you have any idea what could be the best UI for solving this issue?

Thanks.
Comment 2 Petr Somol 2012-05-25 08:05:31 UTC
Created attachment 119860 [details]
added table headers for the first and third column

Actually the columns are <info> <remote> <operation> <local>. I realize table headers <info> and <operation> are now empty. Especially the meaning of the left column may look mysterious if there is no warning message displayed in the table. The meaning of the <operation> column is clear, while its header looks somewhat redundant. It seems we can improve things by supplying labels in the now empty headers and defining the following response to user action:
- click on header <info> sorts rows according to severity of error in the line (repeated clicks may reverse sorting order as is the commonly expected behavior in such context)
- click on header <remote> sorts rows alphabetically according to remote name, the same holds for <local> with respect to local names respectively
- does it make sense to see the rows sorted according to the currently selected operation ? If not, then the click on header <operation> could be interpreted as swap of remote and local headers.


Having a right-click menu on table header where these options would be explicitly listed would be helpful. I am going to add the missing icons as attachments..
Comment 3 Petr Somol 2012-05-25 08:06:10 UTC
Created attachment 119861 [details]
column <info> header icon
Comment 4 Petr Somol 2012-05-25 08:06:35 UTC
Created attachment 119862 [details]
column <operation> header icon
Comment 5 Tomas Mysik 2012-05-25 08:14:10 UTC
Perfect, thanks a lot Petře! I will start working on it soon.
Comment 6 Tomas Mysik 2012-05-31 06:41:59 UTC
(In reply to comment #2)
> Having a right-click menu on table header where these options would be
> explicitly listed would be helpful.

Petře, could you please clarify what exactly should be in the popup menu for the table header? Something like:

- sort info asc
- sort info desc
- sort local paths asc
- sort local paths desc
- sort remote paths asc
- sort remote paths desc

Thanks.
Comment 7 Tomas Mysik 2012-05-31 08:21:56 UTC
(In reply to comment #2)
> - click on header <remote> sorts rows alphabetically according to remote name,
> the same holds for <local> with respect to local names respectively

Just noticed that in Projects view, files are sorted without respect to local names (file "česky.html" is the last in the tree). Should the remote sync be consistent? Or is it a bug in explorer?

Thanks.
Comment 8 Petr Somol 2012-05-31 16:07:15 UTC
(In reply to comment #6)
> 
> Petře, could you please clarify what exactly should be in the popup menu for
> the table header? Something like:
> 
> - sort info asc
> - sort info desc
> - sort local paths asc
> - sort local paths desc
> - sort remote paths asc
> - sort remote paths desc
> 
> Thanks.

Actually the main item is the swapping one. So it might look like this:

Swap Local and Remote Columns
Sort Ascending By Local Path
Sort Ascending By Remote Path
Sort Descending By Local Path
Sort Descending By Remote Path
Sort By Info
Sort By Operation

(the word order sort+direction+by+column name expresses better that the whole rows will be sorted and not just entries in one particular column)

Sort by Info would sort according to severity - errors first, then warnings. Reverted order probably does not make sense with it, or does it ? Who needs to see Info-less entries first while moving all warnings and errors to the end of list ? With Operation it might be similar - there is the question of how to define its ascending and descending order. But I do not have strong opinion about this so decide for yourself.


(In reply to comment #7)

Is there a sorting API in the platform ? That would be the good place to concentrate any internationalization concerns and to shade them from API users. But in general I do not think we have a specific support of the Czech language - when the whole UI is in English the question of sorting czech words is difficult to deal with correctly (what should we do with words from other languages?). At this moment I would stay with the same way as used elsewhere in NB.
Comment 9 Tomas Mysik 2012-06-01 03:16:43 UTC
(In reply to comment #8)
> Swap Local and Remote Columns
> Sort Ascending By Local Path
> Sort Ascending By Remote Path
> Sort Descending By Local Path
> Sort Descending By Remote Path

This is fine.

> Sort By Info

Since I plan to use TableRowSorter, I need to verify that this is possible (TableRowSorter sorts automatically after clicking on column so not sure whether this can be done easily).

> Sort By Operation

Does not make much sense to me, I'm not going to implement this (it won't be allowed to sort by operation).

> (the word order sort+direction+by+column name expresses better that the whole
> rows will be sorted and not just entries in one particular column)

Perfect.

> Sort by Info would sort according to severity - errors first, then warnings.
> Reverted order probably does not make sense with it, or does it ? Who needs to
> see Info-less entries first while moving all warnings and errors to the end of
> list ?

As I wrote, TableRowSorter does this automatically (first click -> ascending, second click -> descending) and I am not sure it can be changed (will check).

> With Operation it might be similar - there is the question of how to
> define its ascending and descending order. But I do not have strong opinion
> about this so decide for yourself.

As I wrote, I would keep the operation header for swapping columns only.

> Is there a sorting API in the platform ? That would be the good place to
> concentrate any internationalization concerns and to shade them from API users.
> But in general I do not think we have a specific support of the Czech language
> - when the whole UI is in English the question of sorting czech words is
> difficult to deal with correctly (what should we do with words from other
> languages?). At this moment I would stay with the same way as used elsewhere in
> NB.

Again, TableRowSorter does this correctly ("česky.html" is right after "c") by default system locale (not NB UI language); I prefer to keep this (correct) behavior.

Feel free to provide your comments.

Thanks.
Comment 10 Tomas Mysik 2012-06-01 10:21:04 UTC
Swapping & sorting implemented, popup menu is TBD.

@vriha: Láďo, please verify carefully since there is a conversion between model and view indexes (it means selected lines) - so verify that operations are set for selected lines, that popup menu works for selected line(s) etc.

Will start working on popup menu now...

http://hg.netbeans.org/web-main/rev/b44e6d654573
http://hg.netbeans.org/web-main/rev/5e96f4d6ca11
Comment 11 Petr Somol 2012-06-01 10:31:56 UTC
 
> > Sort By Info
> > Sort By Operation

No need to complicate things. Drop Sort by Operation, and with Sort by Info do it in the simplest default way.

> Again, TableRowSorter does this correctly ("česky.html" is right after "c") by
> default system locale (not NB UI language); I prefer to keep this (correct)
> behavior.

I agree.
Comment 12 Quality Engineering 2012-06-02 06:10:43 UTC
Integrated into 'main-golden', will be available in build *201206020001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/b44e6d654573
User: Tomas Mysik <tmysik@netbeans.org>
Log: #212949 - Remote sync: local and removed paths cannot be swapped

Sorting is TBD.
Comment 13 Vladimir Riha 2012-06-04 06:57:29 UTC
Created attachment 120276 [details]
windows screenshot

I'll keep testing it. There's a screenshot from Windows7, the swap icon looks like disabled.

Minor note, header cells for sorting by local/remote path have no tooltip text and the first header cell for sorting by Information could say "Sort by Information" or something like that (current is "Information" only)
Comment 14 Petr Somol 2012-06-04 08:25:54 UTC
Created attachment 120285 [details]
new swap and info icons demo

Good catch, I agree this should be done better. I have redrawn the two icons, please take a look. I am going to attach them zipped..
Comment 15 Petr Somol 2012-06-04 08:29:06 UTC
Created attachment 120286 [details]
redrawn table header icons
Comment 16 Petr Somol 2012-06-04 08:35:18 UTC
(In reply to comment #13)
> Minor note, header cells for sorting by local/remote path have no tooltip text
> and the first header cell for sorting by Information could say "Sort by
> Information" or something like that (current is "Information" only)

Yes, I agree tooltips should tell more than the header text itself. What would you say to a hint explaining what would happen on click ? I.e., "Click to sort by Information", "Click to sort by Remote Path", "Click to sort by Local Path", "Click to swap Remote Path and Local Path"...
Comment 17 Vladimir Riha 2012-06-04 09:13:53 UTC
Yes, that seems OK
Comment 18 Tomas Mysik 2012-06-04 11:53:22 UTC
Should be fixed now, completely. Please verify, thanks.

http://hg.netbeans.org/web-main/rev/eb211ecd7dc0
http://hg.netbeans.org/web-main/rev/f8376c5b235c
Comment 19 Tomas Mysik 2012-06-04 12:04:12 UTC
Popup menu separator added.

http://hg.netbeans.org/web-main/rev/fa11ea844753
Comment 20 Quality Engineering 2012-06-08 06:08:46 UTC
Integrated into 'main-golden', will be available in build *201206080001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/eb211ecd7dc0
User: Tomas Mysik <tmysik@netbeans.org>
Log: #212949 cont'd - Remote sync: local and removed paths cannot be swapped

New icons, header tool tips.
Comment 21 Vladimir Riha 2012-06-12 07:51:59 UTC
verified


Product Version: NetBeans IDE Dev (Build 201206110001)
Java: 1.6.0_33; Java HotSpot(TM) Client VM 20.8-b03
System: Linux version 3.0.0-20-generic-pae running on i386; UTF-8; en_US (nb)