Menu

#10 Filter dialog: ranges of values

any future version
needs-review
general (7)
5
2018-06-20
2012-06-05
No

It would be nice if the filter dialog gives sime hint of the values range in the dataset. e.g. the molecule weight is beween x and y. The JSpinner should have this borders too. The JSpinnter should select the step with by the range. e.g. if the range is between 0 and 1 the spinner should do steps of 0.1 and if the range is between 0 and 10 the spinner should do steps of 1.

Discussion

1 2 > >> (Page 1 of 2)
  • Nils Kriege

    Nils Kriege - 2013-08-13
    • assigned_to: Sven Schrinner
     
  • Till Schäfer

    Till Schäfer - 2013-10-24
    • Group: 2.0.x --> any future version
     
  • Till Schäfer

    Till Schäfer - 2016-09-13
    • assigned_to: Sven Schrinner --> nobody
    • Related To: -->
    • Blocks: -->
    • Depends On: -->
     
  • Till Schäfer

    Till Schäfer - 2017-09-13
    • assigned_to: Philipp Mewes
     
  • Philipp Mewes

    Philipp Mewes - 2018-02-20
    • status: open --> in-progress
     
  • Philipp Mewes

    Philipp Mewes - 2018-02-22

    Added minimum and maximum of the property to the spinner and adjusted the stepsize depending on the range([9240b6]).

     

    Related

    Commit: [9240b6]

  • Philipp Mewes

    Philipp Mewes - 2018-03-05

    Fixed some bugs and applied some improvements ([cd9de7] and preceding commits). Seems to work now.

     

    Related

    Commit: [cd9de7]

  • Philipp Mewes

    Philipp Mewes - 2018-03-05
    • status: in-progress --> needs-review
     
  • Till Schäfer

    Till Schäfer - 2018-03-05
    • status: needs-review --> re-opened
     
  • Till Schäfer

    Till Schäfer - 2018-03-05
    1. There is no hint about the min an max value, only the JSpinner Borders are adjusted.
    2. The dialog crashes with the stack trace given below, if you create a new session. In general: please do a proper testing of you implementations.
    3. Please do not add a new method to dbmanager, there already exist getAccNumPropertyDataset (for MoleculeNumProperties) and for getAccPropertyMinMax (for scaffold properties).
    4. the scaffold ranges are not limited to the current tree
    Uncaught Exception in thread AWT-EventQueue-0 (Thread[AWT-EventQueue-0,6,main])
    java.lang.NullPointerException
        at edu.udo.scaffoldhunter.gui.filtering.FilterPanel.showNumValue(FilterPanel.java:283)
        at edu.udo.scaffoldhunter.gui.filtering.FilterPanel.showNumFilter(FilterPanel.java:264)
        at edu.udo.scaffoldhunter.gui.filtering.FilterPanel.showFilter(FilterPanel.java:141)
        at edu.udo.scaffoldhunter.gui.filtering.FilterPanel.access$4(FilterPanel.java:135)
        at edu.udo.scaffoldhunter.gui.filtering.FilterPanel$NumComparisonChanged.actionPerformed(FilterPanel.java:369)
        at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1258)
        at javax.swing.JComboBox.setSelectedItem(JComboBox.java:586)
        at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622)
        at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:861)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
        at java.awt.Component.processMouseEvent(Component.java:6533)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
        at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:510)
        at java.awt.Component.processEvent(Component.java:6298)
        at java.awt.Container.processEvent(Container.java:2237)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2295)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
        at java.awt.Container.dispatchEventImpl(Container.java:2281)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
        at java.awt.EventQueue$4.run(EventQueue.java:733)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
        at java.awt.Dialog.show(Dialog.java:1084)
        at java.awt.Component.show(Component.java:1671)
        at java.awt.Component.setVisible(Component.java:1623)
        at java.awt.Window.setVisible(Window.java:1014)
        at java.awt.Dialog.setVisible(Dialog.java:1005)
        at edu.udo.scaffoldhunter.gui.GUIController.createNewSession(GUIController.java:783)
        at edu.udo.scaffoldhunter.gui.dialogs.SessionDialog$AddAction.actionPerformed(SessionDialog.java:528)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
        at java.awt.Component.processMouseEvent(Component.java:6533)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
        at java.awt.Component.processEvent(Component.java:6298)
        at java.awt.Container.processEvent(Container.java:2237)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2295)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
        at java.awt.Container.dispatchEventImpl(Container.java:2281)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
        at java.awt.EventQueue$4.run(EventQueue.java:733)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
        at java.awt.Dialog.show(Dialog.java:1084)
        at java.awt.Component.show(Component.java:1671)
        at java.awt.Component.setVisible(Component.java:1623)
        at java.awt.Window.setVisible(Window.java:1014)
        at java.awt.Dialog.setVisible(Dialog.java:1005)
        at edu.udo.scaffoldhunter.gui.GUIController.showSessionDialog(GUIController.java:698)
        at edu.udo.scaffoldhunter.gui.GUIController.createStartingState(GUIController.java:542)
        at edu.udo.scaffoldhunter.gui.GUIController.access$13(GUIController.java:529)
        at edu.udo.scaffoldhunter.gui.GUIController$1Start$1.finished(GUIController.java:163)
        at edu.udo.scaffoldhunter.gui.GUIController$1Start$1.finished(GUIController.java:1)
        at edu.udo.scaffoldhunter.util.ProgressSupport.finished(ProgressSupport.java:62)
        at edu.udo.scaffoldhunter.gui.util.ProgressWorker$5.run(ProgressWorker.java:135)
        at edu.udo.scaffoldhunter.gui.util.ProgressWorker.finished(ProgressWorker.java:139)
        at edu.udo.scaffoldhunter.gui.util.ProgressWorker.done(ProgressWorker.java:198)
        at edu.udo.scaffoldhunter.gui.util.SwingWorker$4.run(SwingWorker.java:713)
        at edu.udo.scaffoldhunter.gui.util.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:858)
        at edu.udo.scaffoldhunter.gui.util.AccumulativeRunnable.run(AccumulativeRunnable.java:113)
        at edu.udo.scaffoldhunter.gui.util.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:880)
        at javax.swing.Timer.fireActionPerformed(Timer.java:313)
        at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    
     

    Last edit: Till Schäfer 2018-03-05
  • Philipp Mewes

    Philipp Mewes - 2018-03-06
    • status: re-opened --> in-progress
     
  • Philipp Mewes

    Philipp Mewes - 2018-03-07

    3) getAccNumPropertyDataset() does not take the current subset into account. Should a filtering be applied to the current subset?
    When creating a new session there is a problem: getAccPropertyMinMax() needs the current subset, which can be the root subset. This subset is not present at this time, since the filtering is used to create just this subset. Is there any way to get the minimum and maximum o a scaffold property considering the current tree but not the current subset?

     

    Last edit: Philipp Mewes 2018-03-09
  • Philipp Mewes

    Philipp Mewes - 2018-03-13

    (1) Added a hint below the combo box ([4b61a6], [701453])
    (2) Fixed this bug ([51c74e]). It was caused by the subset beeing null at this time
    (3) UPDATE: Removed the new method ([bb2cb3]), and replaced its calls with the proposed methods. With the correct parameters getAccPropertyMinMax() does not crash when the subset is null. However the minimum/maximum is not calculated in this case.
    (4) The tree is used now for the calculation ([3c65be]).

     

    Related

    Commit: [3c65be]
    Commit: [4b61a6]
    Commit: [51c74e]
    Commit: [701453]
    Commit: [bb2cb3]

  • Philipp Mewes

    Philipp Mewes - 2018-03-14

    (3) Added a workaround which solves the problem ([06a631]). However this solution is not very clean. For some parameter values it is allowed for the subset to be null, for others it is not and will result in a crash.
    More precisely spoken: It is allowed to set the subset to null, if the method is called with a scaffold property and subtreeCumulative is set to false.
    For example:
    The call
    getAccPropertyMinMax(tree, someScafProp, null, null, false, false false) will return a correct result while
    getAccPropertyMinMax(tree, someScafProp, null, null, true, false, false)
    will result in a nullpointer-exception.
    There already exist similiar cases with the AccumulationFunction. For some combinations of parameters this parameter is ignored, for others it is not.

     

    Related

    Commit: [06a631]

  • Philipp Mewes

    Philipp Mewes - 2018-03-16
    • status: in-progress --> needs-review
     
  • Till Schäfer

    Till Schäfer - 2018-03-26

    (3) Can you please open another bug report and precicely describe the parameter combinations, that crash or create unexpected results? We should fix the implementation.
    (5) current implementation crashes with an NPE at edu.udo.scaffoldhunter.model.db.Filter.getPropDef(Filter.java:79), when creating a new session and adding a numerical filter on a molecule property (reproducible on the tutorial dataset and the "Activity at 0.057mM_%" property) (see attached stracktrace)

     

    Last edit: Till Schäfer 2018-03-26
  • Till Schäfer

    Till Schäfer - 2018-03-26
    • status: needs-review --> re-opened
     
  • Philipp Mewes

    Philipp Mewes - 2018-03-27
    • status: re-opened --> in-progress
     
  • Philipp Mewes

    Philipp Mewes - 2018-03-27
    • Blocks: --> bug #300
     
  • Till Schäfer

    Till Schäfer - 2018-03-27
    • Blocks: bug #300 -->
    • Depends On: --> BR 300
     
  • Philipp Mewes

    Philipp Mewes - 2018-04-13
    • status: in-progress --> on-hold
     
  • Philipp Mewes

    Philipp Mewes - 2018-05-25
    • status: on-hold --> in-progress
    • Depends On: BR 300 -->
     
  • Philipp Mewes

    Philipp Mewes - 2018-05-25

    Since in BR 300 only the javadoc is changed this feature is not blocked any longer by this bug.

     
  • Philipp Mewes

    Philipp Mewes - 2018-05-28

    (5) Looks like this is fixed here: [9a3121]. The exception does not occur any longer.

     

    Related

    Commit: [9a3121]

  • Philipp Mewes

    Philipp Mewes - 2018-05-29
    • Related To: --> bug #307
     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

MongoDB Logo MongoDB