diff options
author | Jonathan Bauer | 2015-07-29 17:07:10 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-07-29 17:07:10 +0200 |
commit | 59782784a3e6ce52d3db84d569fa9e2da10a65cd (patch) | |
tree | aed765c7d71e356044b607c90cc889d8465796e5 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java | |
parent | [client] register ImageListWindow in MainWindow (diff) | |
download | tutor-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.java | 259 |
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); - // } - // } } |