summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-07-29 17:07:10 +0200
committerJonathan Bauer2015-07-29 17:07:10 +0200
commit59782784a3e6ce52d3db84d569fa9e2da10a65cd (patch)
treeaed765c7d71e356044b607c90cc889d8465796e5 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
parent[client] register ImageListWindow in MainWindow (diff)
downloadtutor-module-59782784a3e6ce52d3db84d569fa9e2da10a65cd.tar.gz
tutor-module-59782784a3e6ce52d3db84d569fa9e2da10a65cd.tar.xz
tutor-module-59782784a3e6ce52d3db84d569fa9e2da10a65cd.zip
[client] ImageTable now with proper column labeling, finalized ImageListLayout based on BorderLayout
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.java259
1 files changed, 103 insertions, 156 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 0e3aa56c..8257f8b2 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,155 +1,148 @@
package org.openslx.dozmod.gui.window;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.util.ArrayList;
+import java.util.List;
-import javax.swing.RowSorter;
-import javax.swing.RowSorter.SortKey;
-import javax.swing.SortOrder;
-import javax.swing.SwingUtilities;
+import javax.swing.JTextField;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
-import javax.swing.table.TableRowSorter;
import org.apache.log4j.Logger;
+import org.openslx.bwlp.thrift.iface.ImagePermissions;
import org.openslx.bwlp.thrift.iface.ImageSummaryRead;
import org.openslx.dozmod.gui.Gui;
-import org.openslx.dozmod.gui.helper.ImageTableModel;
-import org.openslx.dozmod.gui.helper.TableColumnAdjuster;
+import org.openslx.dozmod.gui.MainWindow;
import org.openslx.dozmod.gui.window.layout.ImageListWindowLayout;
import org.openslx.dozmod.thrift.ImageCache;
+import org.openslx.dozmod.thrift.UserCache;
+import org.openslx.dozmod.util.FormatHelper;
+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 final ImageListWindow me = this;
public ImageListWindow() {
super();
- 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);
- imageTable.setRowSorter(sorter);
- imageTable.setModel(itm);
- // SWING TABLE STUFF
+ // filter the objects in the table depending on the search field
+ searchTextField.getDocument().addDocumentListener(new DocumentListener() {
+ @Override
+ public void removeUpdate(DocumentEvent e) {
+ changedUpdate(e);
+ }
+
+ @Override
+ public void insertUpdate(DocumentEvent e) {
+ changedUpdate(e);
+ }
+
+ @Override
+ public void changedUpdate(DocumentEvent e) {
+ // TODO: Set filter
+ }
+ });
+
+ // Selection listener for the table to update the details panel when an image is clicked
imageTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
- int rowIndex = imageTable.getSelectedRow();
- if (rowIndex == -1)
- return;
- ImageTableModel model = (ImageTableModel) imageTable.getModel();
- final ImageSummaryRead image = model.get(imageTable.convertRowIndexToModel(rowIndex));
- LOGGER.debug(image);
+ ImageSummaryRead image = imageTable.getSelectedItem();
if (image == null)
return;
- Gui.asyncExec(new Runnable() {
- public void run() {
- // updateDetailPane(image);
- }
- });
+ // Fill detail information fields
+ // Image name
+ setFieldText(imageSelectedNameLabel, image.getImageName());
+ // id of the lecture
+ setFieldText(idInfo, image.getImageBaseId());
+ // version of the image TODO last? current?
+ setFieldText(versionInfo, image.getCurrentVersionId());
+ // last update of image
+ setFieldText(lastUpdateInfo, FormatHelper.longDate(image.getUpdateTime()));
+ // permissions of this image
+ ImagePermissions perms = image.getUserPermissions();
+ if (perms == null)
+ perms = image.getDefaultPermissions();
+ if (perms != null)
+ setFieldText(permissionInfo, perms.toString());
+ // the owner of the selected lecture
+ setFieldText(ownerInfo, FormatHelper.userName(UserCache.find(image.getOwnerId())));
+ // is it a template?
+ if (image.isTemplate)
+ templateInfo.setText("Ja");
+ else
+ templateInfo.setText("Nein");
+
+ me.invalidate();
+ me.validate();
+ }
+ private void setFieldText(JTextField control, String content) {
+ if (content == null) {
+ control.setText("<null>");
+ } else {
+ control.setText(content);
+ }
}
});
imageTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent me) {
if (me.getClickCount() == 2) {
- int rowIndex = imageTable.getSelectedRow();
- if (rowIndex == -1)
- return;
- ImageTableModel model = (ImageTableModel) imageTable.getModel();
- final ImageSummaryRead image = model.get(imageTable.convertRowIndexToModel(rowIndex));
- LOGGER.debug(image);
- if (image == null)
- return;
- // Gui.asyncExec(new Runnable() {
- // public void run() {
- // ImageDetailsWindow popup =
- // MainWindow.showPage(ImageDetailsWindow.class);
- // if (popup != null)
- // popup.setImage(image.getImageBaseId());
- // }
- // });
+ // TODO open details popup
}
}
});
+ newButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO open wizard for image creation
+ }
+ });
+
+ downloadButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO open download popup
+ }
+ });
- // // filter the objects in the table depending on the search field
- // searchTextField.addKeyListener(new KeyAdapter() {
- // @Override
- // public void keyReleased(KeyEvent ke) {
- // final String term = searchTextField.getText();
- // SwingUtilities.invokeLater(new Runnable() {
- // @Override
- // public void run() {
- // RowFilter<ImageTableModel, Object> filter = null;
- // try {
- // filter = RowFilter.regexFilter(".*" + term + ".*");
- // } catch (java.util.regex.PatternSyntaxException e) {
- // return;
- // }
- // sorter.setRowFilter(filter);
- // }});
- // }
- // });
- //
- // newButton.addSelectionListener(new SelectionAdapter() {
- // @Override
- // public void widgetSelected(SelectionEvent e) {
- // ImageWizard wizard = new ImageWizard(false);
- // WizardDialog wd = new WizardDialog(getShell(), wizard);
- // refreshList(wd.open() == Window.OK);
- // }
- // });
- //
- //// editButton.addSelectionListener(new SelectionAdapter() {
- //// @Override
- //// public void widgetSelected(SelectionEvent e) {
- //// ImageWizard wizard = new ImageWizard(true);
- //// WizardDialog wd = new WizardDialog(getShell(), wizard);
- //// refreshList(wd.open() == Window.OK);
- //// }
- //// });
- //
- //
- // // return to mainMenu
- // backButton.addSelectionListener(new SelectionAdapter() {
- // @Override
- // public void widgetSelected(SelectionEvent e) {
- //// MainWindow.showPage(MainMenuWindow.class);
- // refreshList(true);
- // }
- // });
+ // delete lecture
+ deleteButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO delete the image
+ }
+ });
+ // return to mainMenu
+ backButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ MainWindow.showPage(MainMenuWindow.class);
+ }
+ });
+
}
private void refreshList(final boolean forceRefresh) {
- SwingUtilities.invokeLater(new Runnable() {
+ QuickTimer.scheduleOnce(new Task() {
@Override
- public void run() {
- ImageTableModel itm = (ImageTableModel) imageTable.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(imageTable);
- tca.adjustColumns();
-
+ public void fire() {
+ final List<ImageSummaryRead> imageList = ImageCache.get(forceRefresh);
+ Gui.asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ imageTable.setData(imageList);
+ }
+ });
}
});
}
@@ -163,50 +156,4 @@ public class ImageListWindow extends ImageListWindowLayout {
public void requestShow() {
refreshList(false);
}
-
- // private void deleteCallback(ImageSummaryRead image, Throwable t) {
- // if (t == null) {
- // Gui.showMessageBox("Deleted image with UUID '" + image + "'.",
- // MessageType.INFO,
- // LOGGER, t);
- // } else {
- // Gui.showMessageBox("Failed to delete image!", MessageType.ERROR, LOGGER,
- // t);
- // }
- // }
- //
- // private 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);
- // }
- // }
}