Skip to content

Commit

Permalink
Fix #10330.
Browse files Browse the repository at this point in the history
  • Loading branch information
dkocher committed May 25, 2018
1 parent 52dca45 commit 60682e8
Show file tree
Hide file tree
Showing 3 changed files with 128 additions and 31 deletions.
81 changes: 70 additions & 11 deletions core/src/main/java/ch/cyberduck/ui/browser/BrowserColumn.java
Expand Up @@ -17,16 +17,75 @@
* Bug fixes, suggestions and comments should be sent to feedback@cyberduck.ch
*/

import ch.cyberduck.core.LocaleFactory;

import org.apache.commons.lang3.StringUtils;

public enum BrowserColumn {
icon,
filename,
size,
modified,
owner,
group,
permission,
kind,
extension,
region,
version
icon {
@Override
public String toString() {
return StringUtils.EMPTY;
}
},
filename {
@Override
public String toString() {
return LocaleFactory.localizedString("Filename");
}
},
size {
@Override
public String toString() {
return LocaleFactory.localizedString("Size");
}
},
modified {
@Override
public String toString() {
return LocaleFactory.localizedString("Modified");
}
},
owner {
@Override
public String toString() {
return LocaleFactory.localizedString("Owner");
}
},
group {
@Override
public String toString() {
return LocaleFactory.localizedString("Group");
}
},
permission {
@Override
public String toString() {
return LocaleFactory.localizedString("Permissions");
}
},
kind {
@Override
public String toString() {
return LocaleFactory.localizedString("Kind");
}
},
extension {
@Override
public String toString() {
return LocaleFactory.localizedString("Extension");
}
},
region {
@Override
public String toString() {
return LocaleFactory.localizedString("Region");
}
},
version {
@Override
public String toString() {
return LocaleFactory.localizedString("Version");
}
}
}
Expand Up @@ -1356,7 +1356,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.size.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.size.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.size.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Size"));
c.headerCell().setStringValue(BrowserColumn.size.toString());
c.setMinWidth(50f);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.size.name())));
Expand All @@ -1368,7 +1368,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.modified.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.modified.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.modified.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Modified"));
c.headerCell().setStringValue(BrowserColumn.modified.toString());
c.setMinWidth(100f);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.modified.name())));
Expand All @@ -1380,7 +1380,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.owner.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.owner.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.owner.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Owner"));
c.headerCell().setStringValue(BrowserColumn.owner.toString());
c.setMinWidth(50);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.owner.name())));
Expand All @@ -1392,7 +1392,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.group.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.group.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.group.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Group"));
c.headerCell().setStringValue(BrowserColumn.group.toString());
c.setMinWidth(50);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.group.name())));
Expand All @@ -1404,7 +1404,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.permission.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.permission.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.permission.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Permissions"));
c.headerCell().setStringValue(BrowserColumn.permission.toString());
c.setMinWidth(100);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.permission.name())));
Expand All @@ -1416,7 +1416,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.kind.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.kind.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.kind.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Kind"));
c.headerCell().setStringValue(BrowserColumn.kind.toString());
c.setMinWidth(50);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.kind.name())));
Expand All @@ -1428,7 +1428,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.extension.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.extension.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.extension.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Extension"));
c.headerCell().setStringValue(BrowserColumn.extension.toString());
c.setMinWidth(50);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.extension.name())));
Expand All @@ -1440,7 +1440,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.region.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.region.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.region.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Region"));
c.headerCell().setStringValue(BrowserColumn.region.toString());
c.setMinWidth(50);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.region.name())));
Expand All @@ -1452,7 +1452,7 @@ private void _updateBrowserColumns(final NSTableView table, final AbstractBrowse
table.removeTableColumn(table.tableColumnWithIdentifier(BrowserColumn.version.name()));
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.version.name()))) {
NSTableColumn c = browserListColumnsFactory.create(BrowserColumn.version.name());
c.headerCell().setStringValue(LocaleFactory.localizedString("Version"));
c.headerCell().setStringValue(BrowserColumn.version.toString());
c.setMinWidth(50);
c.setWidth(preferences.getFloat(String.format("browser.column.%s.width",
BrowserColumn.version.name())));
Expand Down Expand Up @@ -2823,8 +2823,46 @@ public void copy(final ID sender) {
clipboard.declareTypes(NSArray.arrayWithObject(
NSString.stringWithString(NSPasteboard.StringPboardType)), null);
StringBuilder copy = new StringBuilder();
for(Iterator<Path> i = s.iterator(); i.hasNext(); ) {
copy.append(i.next().getAbsolute());
Iterator<Path> i = s.iterator();
while(i.hasNext()) {
final Path next = i.next();
copy.append(next.getAbsolute());
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.size.name()))) {
copy.append(",");
if(-1 != next.attributes().getSize()) {
copy.append(String.valueOf(next.attributes().getSize()));
}
}
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.modified.name()))) {
copy.append(",");
if(-1 != next.attributes().getModificationDate()) {
copy.append(String.valueOf(next.attributes().getModificationDate()));
}
}
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.owner.name()))) {
copy.append(",");
if(StringUtils.isNotBlank(next.attributes().getOwner())) {
copy.append(next.attributes().getOwner());
}
}
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.group.name()))) {
copy.append(",");
if(StringUtils.isNotBlank(next.attributes().getGroup())) {
copy.append(next.attributes().getGroup());
}
}
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.permission.name()))) {
copy.append(",");
if(Permission.EMPTY != next.attributes().getPermission()) {
copy.append(next.attributes().getPermission().getMode());
}
}
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.region.name()))) {
copy.append(",").append(next.attributes().getRegion());
}
if(preferences.getBoolean(String.format("browser.column.%s", BrowserColumn.version.name()))) {
copy.append(",").append(next.attributes().getVersionId());
}
if(i.hasNext()) {
copy.append("\n");
}
Expand Down
Expand Up @@ -301,15 +301,15 @@ public void setEncodingMenu(NSMenu encodingMenu) {
public void setColumnMenu(NSMenu columnMenu) {
this.columnMenu = columnMenu;
Map<String, String> columns = new HashMap<String, String>();
columns.put(String.format("browser.column.%s", BrowserColumn.kind.name()), LocaleFactory.localizedString("Kind"));
columns.put(String.format("browser.column.%s", BrowserColumn.extension.name()), LocaleFactory.localizedString("Extension"));
columns.put(String.format("browser.column.%s", BrowserColumn.size.name()), LocaleFactory.localizedString("Size"));
columns.put(String.format("browser.column.%s", BrowserColumn.modified.name()), LocaleFactory.localizedString("Modified"));
columns.put(String.format("browser.column.%s", BrowserColumn.owner.name()), LocaleFactory.localizedString("Owner"));
columns.put(String.format("browser.column.%s", BrowserColumn.group.name()), LocaleFactory.localizedString("Group"));
columns.put(String.format("browser.column.%s", BrowserColumn.permission.name()), LocaleFactory.localizedString("Permissions"));
columns.put(String.format("browser.column.%s", BrowserColumn.region.name()), LocaleFactory.localizedString("Region"));
columns.put(String.format("browser.column.%s", BrowserColumn.version.name()), LocaleFactory.localizedString("Version"));
columns.put(String.format("browser.column.%s", BrowserColumn.kind.name()), BrowserColumn.kind.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.extension.name()), BrowserColumn.extension.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.size.name()), BrowserColumn.size.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.modified.name()), BrowserColumn.modified.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.owner.name()), BrowserColumn.owner.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.group.name()), BrowserColumn.group.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.permission.name()), BrowserColumn.permission.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.region.name()), BrowserColumn.region.toString());
columns.put(String.format("browser.column.%s", BrowserColumn.version.name()), BrowserColumn.version.toString());
for(Map.Entry<String, String> entry : columns.entrySet()) {
NSMenuItem item = this.columnMenu.addItemWithTitle_action_keyEquivalent(entry.getValue(),
Foundation.selector("columnMenuClicked:"), StringUtils.EMPTY);
Expand Down

0 comments on commit 60682e8

Please sign in to comment.