diff --git a/gui/griffon-app/views/com/muwire/gui/ChatRoomView.groovy b/gui/griffon-app/views/com/muwire/gui/ChatRoomView.groovy index 7da363c0..fb5ceef5 100644 --- a/gui/griffon-app/views/com/muwire/gui/ChatRoomView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/ChatRoomView.groovy @@ -1,6 +1,6 @@ package com.muwire.gui - +import com.google.common.collect.Sets import com.muwire.core.trust.TrustLevel import com.muwire.gui.chat.ChatEntry import com.muwire.gui.chat.ChatEntryPane @@ -64,7 +64,7 @@ class ChatRoomView { ChatEntryPane sayField JTextPane roomTextArea def textScrollPane - def membersTable + JTable membersTable def lastMembersTableSortEvent UISettings settings @@ -155,6 +155,8 @@ class ChatRoomView { if (membersTable != null) { + TableUtil.packColumns(membersTable, Sets.newHashSet(0)) + TableUtil.nicknameColumn(membersTable, 0) membersTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer()) membersTable.setDefaultRenderer(PersonaOrProfile.class, new PersonaOrProfileCellRenderer(application.context.get("ui-settings"))) membersTable.rowSorter.setComparator(0, new PersonaOrProfileComparator()) diff --git a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy index 131c2f42..67a93a88 100644 --- a/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/MainFrameView.groovy @@ -1084,6 +1084,8 @@ class MainFrameView { TableUtil.packColumns(collectionsTable, Sets.newHashSet(0,1,2,3,6)) TableUtil.sizeColumn(collectionsTable, 3) TableUtil.dateColumn(collectionsTable, 6) + TableUtil.nicknameColumn(collectionsTable, 1) + TableUtil.filesColumn(collectionsTable, 2) def personaRenderer = new PersonaCellRenderer(application.context.get("ui-settings")) def personaComparator = new PersonaComparator() collectionsTable.setDefaultRenderer(Integer.class, centerRenderer) @@ -1130,6 +1132,8 @@ class MainFrameView { // collection files table + TableUtil.packColumns(collectionFilesTable, Sets.newHashSet(0,1)) + TableUtil.sizeColumn(collectionFilesTable, 1) collectionFilesTable.setDefaultRenderer(Long.class, new SizeRenderer()) collectionFilesTable.rowSorter.addRowSorterListener({ evt -> lastCollectionFilesSortEvent = evt }) collectionFilesTable.rowSorter.setSortsOnUpdates(true) @@ -1160,6 +1164,7 @@ class MainFrameView { // uploadsTable JTable uploadsTable = builder.getVariable("uploads-table") TableUtil.speedColumn(uploadsTable, 4) + TableUtil.nicknameColumn(uploadsTable, 2) uploadsTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer) uploadsTable.rowSorter.setComparator(2, popComparator) @@ -1214,6 +1219,7 @@ class MainFrameView { JTable feedsTable = builder.getVariable("feeds-table") TableUtil.enumColumn(feedsTable, 3, FeedFetchStatus.class) TableUtil.dateColumn(feedsTable, 2) + TableUtil.filesColumn(feedsTable, 1) feedsTable.rowSorter.addRowSorterListener({ evt -> lastFeedsSortEvent = evt }) feedsTable.rowSorter.setSortsOnUpdates(true) feedsTable.rowSorter.setComparator(0, personaComparator) @@ -1352,6 +1358,7 @@ class MainFrameView { // trusted contacts table JTable trustedContactsTable = builder.getVariable("trusted-contacts-table") + TableUtil.nicknameColumn(trustedContactsTable, 0) trustedContactsTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer) trustedContactsTable.rowSorter.setComparator(0, popComparator) trustedContactsTable.rowSorter.setSortsOnUpdates(true) @@ -1388,6 +1395,7 @@ class MainFrameView { // distrusted contacts table JTable distrustedContactsTable = builder.getVariable("distrusted-contacts-table") + TableUtil.nicknameColumn(distrustedContactsTable, 0) distrustedContactsTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer) distrustedContactsTable.rowSorter.setComparator(0, popComparator) distrustedContactsTable.rowSorter.setSortsOnUpdates(true) diff --git a/gui/griffon-app/views/com/muwire/gui/MyFeedView.groovy b/gui/griffon-app/views/com/muwire/gui/MyFeedView.groovy index a65a3404..eb83d7e4 100644 --- a/gui/griffon-app/views/com/muwire/gui/MyFeedView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/MyFeedView.groovy @@ -3,6 +3,7 @@ package com.muwire.gui import com.muwire.core.SharedFile import griffon.core.artifact.GriffonView +import javax.swing.JTable import javax.swing.RowSorter import javax.swing.SortOrder @@ -35,7 +36,7 @@ class MyFeedView { def mainFrame def dialog def itemsPanel - def itemsTable + JTable itemsTable def lastItemsTableSortEvent void initUI() { @@ -53,9 +54,9 @@ class MyFeedView { scrollPane( constraints : BorderLayout.CENTER ) { itemsTable = table(autoCreateRowSorter : true, rowHeight : rowHeight) { tableModel(list : model.items) { - closureColumn(header : trans("NAME"), preferredWidth: 500, type : String, read : { HTMLSanitizer.sanitize(it.getCachedPath())}) - closureColumn(header : trans("SIZE"), preferredWidth: 100, type : Long, read : {it.getCachedLength()}) - closureColumn(header : trans("DATE"), preferredWidth: 200, type : Long, read : {it.getPublishedTimestamp()}) + closureColumn(header : trans("NAME"), type : String, read : { HTMLSanitizer.sanitize(it.getCachedPath())}) + closureColumn(header : trans("SIZE"), type : Long, read : {it.getCachedLength()}) + closureColumn(header : trans("DATE"), type : Long, read : {it.getPublishedTimestamp()}) } } } @@ -65,6 +66,8 @@ class MyFeedView { } } + TableUtil.sizeColumn(itemsTable, 1) + TableUtil.dateColumn(itemsTable, 2) itemsTable.rowSorter.addRowSorterListener({evt -> lastItemsTableSortEvent = evt}) itemsTable.columnModel.getColumn(1).setCellRenderer(new SizeRenderer()) itemsTable.columnModel.getColumn(2).setCellRenderer(new DateRenderer()) diff --git a/gui/griffon-app/views/com/muwire/gui/resultdetails/ResultDetailsTabsView.groovy b/gui/griffon-app/views/com/muwire/gui/resultdetails/ResultDetailsTabsView.groovy index 39265414..ddb129f8 100644 --- a/gui/griffon-app/views/com/muwire/gui/resultdetails/ResultDetailsTabsView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/resultdetails/ResultDetailsTabsView.groovy @@ -102,6 +102,7 @@ class ResultDetailsTabsView { } TableUtil.packColumns(sendersTable, Sets.newHashSet(0,2)) + TableUtil.nicknameColumn(sendersTable, 0) commentsPanel = builder.panel { cardLayout() diff --git a/gui/src/main/groovy/com/muwire/gui/TableUtil.groovy b/gui/src/main/groovy/com/muwire/gui/TableUtil.groovy index 90e335ef..e337c333 100644 --- a/gui/src/main/groovy/com/muwire/gui/TableUtil.groovy +++ b/gui/src/main/groovy/com/muwire/gui/TableUtil.groovy @@ -1,6 +1,8 @@ package com.muwire.gui +import com.muwire.core.Constants import com.muwire.core.files.FileHasher +import com.muwire.gui.profile.ProfileConstants import net.i2p.data.DataHelper import static com.muwire.gui.Translator.trans @@ -58,6 +60,23 @@ class TableUtil { fixedColumnSize(table, index, len + 60) } + static void nicknameColumn(JTable table, int index) { + String tmp = "A" + Constants.MAX_NICKNAME_LENGTH.times {tmp += "A"} + tmp += "@" + 32.times {tmp += "a"} + int size = stringWidth(table, tmp) + ProfileConstants.MAX_THUMBNAIL_SIZE + 30 + TableColumn column = table.getColumnModel().getColumn(index) + column.setMaxWidth(size) + column.setPreferredWidth((int)(size / 2)) + } + + static void filesColumn(JTable table, int index) { + String million = String.valueOf(1000000) + int size = stringWidth(table, million) + fixedColumnSize(table, index, size + 30) + } + private static void fixedColumnSize(JTable table, int index, int columnSize) { TableColumn column = table.getColumnModel().getColumn(index) column.setMinWidth(columnSize)