Community
Participate
Working Groups
Created attachment 204875 [details] Picture of the current filter dialog Due to the usual big amount of queued jobs it is easy to loss the overview. Therefore the idea of offering an filter functionality came up. During the beginning of the implementation several ideas about the handling of the filter functionality came into our mind which can influence the further implementation. To get more knowledge about the user requirements and desired features I opened this bug. At the moment you can choose only one column out of a combo box and set the value which should only be displayed in the chosen column. (see also picture) Is it of interest to set an filtering option for several columns at the same time? Is it of interest if a filtering value can be also excluded? This feature also for several values?
I think filtering for several columns would be useful. For example, I might want to only see jobs for one user in a particular queue. I can't think of a good use case for exclusions, so I would not spend time on this now. The filter menu should be accessed by a view menu (using an inverted triangle on the right hand side of the view). I woul like a special filter for the user's own jobs that would be activated by the first menu item. The general filters dialog should be accessed through a Filters... menu item. See the attached image for an example.
Created attachment 204885 [details] Filter menu example
(In reply to comment #1) > The filter menu should be accessed by a view menu (using an inverted triangle > on the right hand side of the view). I woul like a special filter for the > user's own jobs that would be activated by the first menu item. The general > filters dialog should be accessed through a Filters... menu item. See the > attached image for an example. In the implementation a menu item is already included. For the filter for the user's own jobs: How do I get the id of the user? At the moment it is only possible to filter for active columns. Is this okay?
Other comments: 1. Filtering should not be provided on the status column as this doesn't really make sense. 2. For the filter dialog, I would suggest a table containing three columns. The first column would be a checkbox that enables/disables filtering for the entry. The second column would be the name of the jobs table column to be filtered. The third column would be either a dropdown combo if you know the possible values, or an editable text field if you don't. This table would be pre-populated with an entry for each column in the jobs table that can be filtered.
(In reply to comment #3) > (In reply to comment #1) > > > The filter menu should be accessed by a view menu (using an inverted triangle > > on the right hand side of the view). I woul like a special filter for the > > user's own jobs that would be activated by the first menu item. The general > > filters dialog should be accessed through a Filters... menu item. See the > > attached image for an example. > > In the implementation a menu item is already included. Great. > > For the filter for the user's own jobs: How do I get the id of the user? IRemoteConnect#getUsername() for the remote connection. > > At the moment it is only possible to filter for active columns. Is this okay? Yes, I think that's fine.
(In reply to comment #5) > > For the filter for the user's own jobs: How do I get the id of the user? > > IRemoteConnect#getUsername() for the remote connection. I would like if the username would be transmitted as a argument in the method call openLgui() in the method doStartup(LMLRsourceManagerMonitor), but the RemoteConnection is later generated and checked afterwards. I am not sure if I should move the method call of openLgui() into the construction which checks that the remote connection is not null. First, I will add the username as atrribute in the method call update() in MonitorJob.
(In reply to comment #4) > Other comments: > > 1. Filtering should not be provided on the status column as this doesn't really > make sense. Wolfgang suggested to allow the filtering of the status column, but only in the InactiveJobView.
(In reply to comment #6) > (In reply to comment #5) > > > > > For the filter for the user's own jobs: How do I get the id of the user? > > > > IRemoteConnect#getUsername() for the remote connection. > > I would like if the username would be transmitted as a argument in the method > call openLgui() in the method doStartup(LMLRsourceManagerMonitor), but the > RemoteConnection is later generated and checked afterwards. I am not sure if I > should move the method call of openLgui() into the construction which checks > that the remote connection is not null. > > First, I will add the username as atrribute in the method call update() in > MonitorJob. Here is a patch that adds the username as an argument to openLgui(): ### Eclipse Workspace Patch 1.0 #P org.eclipse.ptp.rm.lml.monitor.core Index: src/org/eclipse/ptp/rm/lml/monitor/core/LMLResourceManagerMonitor.java =================================================================== RCS file: /cvsroot/tools/org.eclipse.ptp/rms/org.eclipse.ptp.rm.lml.monitor.core/src/org/eclipse/ptp/rm/lml/monitor/core/LMLResourceManagerMonitor.java,v retrieving revision 1.24 diff -u -r1.24 LMLResourceManagerMonitor.java --- src/org/eclipse/ptp/rm/lml/monitor/core/LMLResourceManagerMonitor.java 6 Sep 2011 11:31:32 -0000 1.24 +++ src/org/eclipse/ptp/rm/lml/monitor/core/LMLResourceManagerMonitor.java 11 Oct 2011 14:11:42 -0000 @@ -364,32 +364,39 @@ jobs = reload(memento); } - /* - * Initialize LML classes - */ - fLMLManager.openLgui(getResourceManager().getUniqueName(), getMonitorConfigurationRequestType(), layout, jobs); - /* - * Open connection and launch periodic job - */ + final IRemoteConnection conn = getRemoteConnection(monitor); - if (conn != null) { - if (!conn.isOpen()) { - try { - conn.open(monitor); - } catch (final RemoteConnectionException e) { - throw new CoreException(new Status(IStatus.ERROR, LMLMonitorCorePlugin.getUniqueIdentifier(), e.getMessage())); - } + if (conn == null) { + throw new CoreException(new Status(IStatus.ERROR, LMLMonitorCorePlugin.getUniqueIdentifier(), + Messages.LMLResourceManagerMonitor_unableToOpenConnection)); + } + + if (!conn.isOpen()) { + try { + conn.open(monitor); + } catch (final RemoteConnectionException e) { + throw new CoreException(new Status(IStatus.ERROR, LMLMonitorCorePlugin.getUniqueIdentifier(), e.getMessage())); } if (!conn.isOpen()) { throw new CoreException(new Status(IStatus.ERROR, LMLMonitorCorePlugin.getUniqueIdentifier(), Messages.LMLResourceManagerMonitor_unableToOpenConnection)); } - synchronized (this) { - if (fMonitorJob == null) { - fMonitorJob = new MonitorJob(Messages.LMLResourceManagerMonitor_LMLMonitorJob, conn); - } - fMonitorJob.schedule(); + } + + /* + * Initialize LML classes + */ + fLMLManager.openLgui(getResourceManager().getUniqueName(), conn.getUsername(), getMonitorConfigurationRequestType(), + layout, jobs); + + /* + * Start monitoring job + */ + synchronized (this) { + if (fMonitorJob == null) { + fMonitorJob = new MonitorJob(Messages.LMLResourceManagerMonitor_LMLMonitorJob, conn); } + fMonitorJob.schedule(); } /*
(In reply to comment #7) > (In reply to comment #4) > > Other comments: > > > > 1. Filtering should not be provided on the status column as this doesn't > really > > make sense. > > Wolfgang suggested to allow the filtering of the status column, but only in the > InactiveJobView. Fine.
*** Bug 356948 has been marked as a duplicate of this bug. ***
Created attachment 209128 [details] Implementation of the feature - filtering With these changes it is possible to filter within the TableView of PTP. The filtering is yet only on the client side. Further updates will come.
Created attachment 209432 [details] Fixing an error. If the button OK or the button Apply of the FilterDialog were pushed during an Update of one of the Resource Managers Eclipse PTP crashed. The attached patch is solving the problem.
Created attachment 213579 [details] Improvement Fixing inconsisitent behavior
Created attachment 217876 [details] Sever side implementation of the filtering feature