summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-07-24 18:32:28 +0200
committerJonathan Bauer2015-07-24 18:32:28 +0200
commit4cfde69c476e2a0c13606dcd251dc07a5149b695 (patch)
tree0b9bcc06b36c9f49fb4935970529ddcb69b8d56a /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
parent[client] getTable for ImageCustomPermissionPage (soon not needed anymore!!!!!... (diff)
downloadtutor-module-4cfde69c476e2a0c13606dcd251dc07a5149b695.tar.gz
tutor-module-4cfde69c476e2a0c13606dcd251dc07a5149b695.tar.xz
tutor-module-4cfde69c476e2a0c13606dcd251dc07a5149b695.zip
[client] rework tables to jtables for ImageListWindow
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java281
1 files changed, 142 insertions, 139 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
index 2392409e..bd820ff7 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
@@ -1,13 +1,19 @@
package org.openslx.dozmod.gui.window;
-import java.util.List;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.ArrayList;
+
+import javax.swing.RowFilter;
+import javax.swing.RowSorter;
+import javax.swing.RowSorter.SortKey;
+import javax.swing.SortOrder;
+import javax.swing.SwingUtilities;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.TableRowSorter;
import org.apache.log4j.Logger;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.events.KeyAdapter;
@@ -21,101 +27,49 @@ import org.openslx.bwlp.thrift.iface.ImageSummaryRead;
import org.openslx.bwlp.thrift.iface.UserInfo;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.MainWindow;
-import org.openslx.dozmod.gui.helper.ImageListComparator;
-import org.openslx.dozmod.gui.helper.ImageListFilter;
+import org.openslx.dozmod.gui.helper.ImageTableModel;
import org.openslx.dozmod.gui.helper.MessageType;
-import org.openslx.dozmod.gui.helper.TableHelper;
+import org.openslx.dozmod.gui.helper.TableColumnAdjuster;
import org.openslx.dozmod.gui.window.layout.ImageListWindowLayout;
import org.openslx.dozmod.gui.wizard.ImageWizard;
import org.openslx.dozmod.thrift.ImageCache;
-import org.openslx.dozmod.thrift.Session;
import org.openslx.dozmod.thrift.UserCache;
import org.openslx.dozmod.util.FormatHelper;
-import org.openslx.thrifthelper.ThriftManager;
-import org.openslx.util.QuickTimer;
-import org.openslx.util.QuickTimer.Task;
public class ImageListWindow extends ImageListWindowLayout {
private final static Logger LOGGER = Logger.getLogger(ImageListWindow.class);
+ TableRowSorter<ImageTableModel> sorter = new TableRowSorter<ImageTableModel>();
public ImageListWindow(final Shell mainShell) {
super(mainShell);
-
- // Comparator for column sorting
- ImageListComparator comparator = new ImageListComparator();
- tableViewer.setComparator(comparator);
- // creating the columns with sorting functionality through comparator
- TableHelper.createImageTableColumns(tableViewer);
-
+
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ ImageTableModel itm = new ImageTableModel();
+ sorter.setSortsOnUpdates(true);
+ sorter.setModel(itm);
+ ArrayList<SortKey> list = new ArrayList<SortKey>();
+ list.add( new RowSorter.SortKey(0, SortOrder.ASCENDING) );
+ sorter.setSortKeys(list);
+ jtable.setRowSorter(sorter);
+ jtable.setModel(itm);
+ }
+ });
// filter the objects in the table depending on the search field
searchTextField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent ke) {
- filter.setSearchText(searchTextField.getText());
- tableViewer.refresh();
- }
- });
-
- // apply object filtering
- filter = new ImageListFilter();
- tableViewer.addFilter(filter);
-
- // the listeners to set the detailed info of the selected image
- tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- ImageSummaryRead image = (ImageSummaryRead) selection.getFirstElement();
- if (image == null)
- return;
- // -- Set details --
- // set the image name
- setFieldText(imageSelectedNameLabel, image.getImageName());
- // set the image
- setFieldText(idInfo, image.getImageBaseId());
- // set the current version of the image
- setFieldText(versionInfo, image.getCurrentVersionId());
- // set the time, the image has last been updated
- lastUpdateInfo.setText(FormatHelper.shortDate(image.getUpdateTime()));
- // info about the image permissions
- ImagePermissions perms = image.getUserPermissions();
- if (perms == null)
- perms = image.getDefaultPermissions();
- if (perms != null)
- setFieldText(permissionInfo, perms.toString());
- // the owner id of the selected image
- UserInfo user = UserCache.find(image.getOwnerId());
- setFieldText(ownerInfo, FormatHelper.userName(user));
-
- // set the template info
- if (image.isTemplate) {
- templateInfo.setText("ja");
- } else {
- templateInfo.setText("Nein");
- }
- }
-
- private void setFieldText(Text control, String content) {
- if (content == null) {
- control.setText("<null>");
- } else {
- control.setText(content);
- }
- }
- });
-
- // Double click entry -> open details window
- tableViewer.addDoubleClickListener(new IDoubleClickListener() {
- @Override
- public void doubleClick(DoubleClickEvent event) {
- IStructuredSelection selection = (IStructuredSelection) event.getSelection();
- ImageSummaryRead image = (ImageSummaryRead) selection.getFirstElement();
- if (image == null)
- return;
- ImageDetailsWindow popup = MainWindow.openPopup(ImageDetailsWindow.class, true, false);
- if (popup != null)
- popup.setImage(image.getImageBaseId());
+ Gui.asyncExec(new Runnable() {
+ public void run() {
+ RowFilter<ImageTableModel, Object> filter = null;
+ try {
+ filter = RowFilter.regexFilter(".*" + searchTextField.getText() + ".*");
+ } catch (java.util.regex.PatternSyntaxException e) {
+ return;
+ }
+ sorter.setRowFilter(filter);
+ }});
}
});
@@ -137,72 +91,92 @@ public class ImageListWindow extends ImageListWindowLayout {
}
});
- //deleteImageVersion
- deleteButton.addSelectionListener(new SelectionAdapter() {
+
+ // return to mainMenu
+ backButton.addSelectionListener(new SelectionAdapter() {
@Override
- public void widgetSelected(final SelectionEvent e) {
- IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
- if (selection == null) {
- MainWindow.showMessageBox("SELECIT ONULL!", MessageType.ERROR, LOGGER, null);
- return;
+ public void widgetSelected(SelectionEvent e) {
+// MainWindow.showPage(MainMenuWindow.class);
+ refreshList(true);
+ }
+ });
+
+ // SWING TABLE STUFF
+ jtable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+
+ @Override
+ public void valueChanged(ListSelectionEvent e) {
+ ImageTableModel model = (ImageTableModel) jtable.getModel();
+ int rowIndex = jtable.getSelectedRow();
+ ImageSummaryRead image = null;
+ if (rowIndex != -1) {
+ image = model.get(jtable.convertRowIndexToModel(jtable.getSelectedRow()));
+ LOGGER.debug(image.toString());
+ } else {
+ LOGGER.error("No selection!");
}
- final ImageSummaryRead image = (ImageSummaryRead) selection.getFirstElement();
- if (image == null) {
- MainWindow.showMessageBox("IMAGE ONULL!", MessageType.ERROR, LOGGER, null);
+ final ImageSummaryRead finalImage = image;
+ if (image == null)
return;
- }
- LOGGER.debug("Trying to delete: " + image);
-
- QuickTimer.scheduleOnce(new Task() {
- @Override
- public void fire() {
- Throwable t = null;
- try {
- ThriftManager.getSatClient().deleteImageVersion(Session.getSatelliteToken(),
- image.getCurrentVersionId());
- } catch (Exception e) {
- t = e;
- }
- final Throwable t2 = t;
- Gui.display.asyncExec(new Runnable() {
- @Override
- public void run() {
- deleteCallback(image, t2);
- }
- });
+ Gui.asyncExec(new Runnable() {
+ public void run() {
+ updateDetailPane(finalImage);
}
});
}
});
-
- // return to mainMenu
- backButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- MainWindow.showPage(MainMenuWindow.class);
- }
+ jtable.addMouseListener(new MouseAdapter() {
+ public void mousePressed(MouseEvent me) {
+ if (me.getClickCount() == 2) {
+ // your valueChanged overridden method
+ ImageTableModel model = (ImageTableModel) jtable.getModel();
+ int rowIndex = jtable.getSelectedRow();
+ ImageSummaryRead image = null;
+ if (rowIndex != -1) {
+ image = model.get(jtable.convertRowIndexToModel(rowIndex));
+ LOGGER.debug(image.toString());
+ } else {
+ LOGGER.error("No selection!");
+ }
+ final ImageSummaryRead finalImage = image;
+ if (finalImage == null)
+ return;
+ Gui.asyncExec(new Runnable() {
+ public void run() {
+ ImageDetailsWindow popup = MainWindow.openPopup(ImageDetailsWindow.class, true, false);
+ if (popup != null)
+ popup.setImage(finalImage.getImageBaseId());
+ }
+ });
+ }
+ }
});
+
}
private void refreshList(final boolean forceRefresh) {
if (isDisposed())
return;
- tableViewer.getTable().setEnabled(false);
- QuickTimer.scheduleOnce(new Task() {
+ SwingUtilities.invokeLater(new Runnable() {
@Override
- public void fire() {
- final List<ImageSummaryRead> imageList = ImageCache.get(forceRefresh);
- Gui.asyncExec(new Runnable() {
- @Override
- public void run() {
- if (isDisposed())
- return;
- tableViewer.setInput(imageList);
- tableViewer.refresh();
- tableViewer.getTable().setEnabled(true);
- newButton.setFocus();
- }
- });
+ public void run() {
+ ImageTableModel itm = (ImageTableModel) jtable.getModel();
+ itm.setItems(ImageCache.get(forceRefresh));
+ itm.fireTableDataChanged();
+
+ if (sorter.getSortKeys().isEmpty()) {
+ ArrayList<SortKey> list = new ArrayList<SortKey>();
+ list.add( new RowSorter.SortKey(0, SortOrder.ASCENDING) );
+ sorter.setSortKeys(list);
+ LOGGER.debug("Sortkeys: " + sorter.getSortKeys().get(0).getColumn());
+ } else {
+ LOGGER.debug("Existing: " + sorter.getSortKeys().get(0).getColumn());
+ }
+
+ sorter.sort();
+ TableColumnAdjuster tca = new TableColumnAdjuster(jtable);
+ tca.adjustColumns();
+
}
});
}
@@ -226,8 +200,37 @@ public class ImageListWindow extends ImageListWindowLayout {
}
}
- public ImageSummaryRead getCurrentImageSummaryRead() {
- IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
- return (ImageSummaryRead) selection.getFirstElement();
+ public void updateDetailPane(ImageSummaryRead image) {
+ // -- Set details --
+ // set the image name
+ setFieldText(imageSelectedNameLabel, image.getImageName());
+ // set the image
+ setFieldText(idInfo, image.getImageBaseId());
+ // set the current version of the image
+ setFieldText(versionInfo, image.getCurrentVersionId());
+ // set the time, the image has last been updated
+ lastUpdateInfo.setText(FormatHelper.shortDate(image.getUpdateTime()));
+ // info about the image permissions
+ ImagePermissions perms = image.getUserPermissions();
+ if (perms == null)
+ perms = image.getDefaultPermissions();
+ if (perms != null)
+ setFieldText(permissionInfo, perms.toString());
+ // the owner id of the selected image
+ UserInfo user = UserCache.find(image.getOwnerId());
+ setFieldText(ownerInfo, FormatHelper.userName(user));
+ // set the template info
+ if (image.isTemplate) {
+ templateInfo.setText("ja");
+ } else {
+ templateInfo.setText("Nein");
+ }
+ }
+ private void setFieldText(Text control, String content) {
+ if (content == null) {
+ control.setText("<null>");
+ } else {
+ control.setText(content);
+ }
}
}