ped's People
ped's Issues
Unable to input non-integer GMT timezones
Certain parts of the world are on non-integer GMT timezones. For example, Indian is on GMT+5.5. This means that I cannot accurately track the timezones of any clients living in India.
IndexOutOfBoundsException after finding a client when the display panel is already showing another client
Steps to replicate (using the default data on initial application load):
client view 5
client find alex
Full log:
INFO: =============================[ Initializing TBM ]=============================
Oct 30, 2020 4:15:51 PM seedu.address.MainApp start
INFO: Starting TbmManager V1.2.1ea
Oct 30, 2020 4:15:51 PM seedu.address.ui.UiManager start
INFO: Starting UI...
Oct 30, 2020 4:15:59 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][client view 5]
Oct 30, 2020 4:15:59 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: client Rest of command: view 5
Oct 30, 2020 4:15:59 PM seedu.address.logic.parser.MainParser parseClientCommands
INFO: Command Type: view Rest of command: 5
Oct 30, 2020 4:15:59 PM seedu.address.model.widget.WidgetModelManager setWidgetClient
INFO: Setting client of widget to: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Result: Viewing client: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Widget View Option: CLIENT
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Toggling client view
Oct 30, 2020 4:15:59 PM seedu.address.model.widget.WidgetModelManager getWidgetClient
INFO: Retrieving client of widget: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.ui.MainWindow executeCommand
INFO: Irfan Ibrahim
Oct 30, 2020 4:15:59 PM seedu.address.model.widget.WidgetModelManager getWidgetClient
INFO: Retrieving client of widget: Irfan Ibrahim
Oct 30, 2020 4:16:02 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][client find alex]
Oct 30, 2020 4:16:02 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: client Rest of command: find alex
Oct 30, 2020 4:16:02 PM seedu.address.logic.parser.MainParser parseClientCommands
INFO: Command Type: find Rest of command: alex
Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
at javafx.collections.transformation.SortedList.get(SortedList.java:168)
at seedu.address.ui.WidgetViewBox.lambda$new$0(WidgetViewBox.java:60)
at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
at javafx.collections.transformation.SortedList.sourceChanged(SortedList.java:114)
at javafx.collections.transformation.TransformationList.lambda$getListener$0(TransformationList.java:106)
at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
at javafx.collections.transformation.FilteredList.refilter(FilteredList.java:338)
at javafx.collections.transformation.FilteredList.access$000(FilteredList.java:50)
at javafx.collections.transformation.FilteredList$1.invalidated(FilteredList.java:102)
at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:147)
at javafx.collections.transformation.FilteredList.setPredicate(FilteredList.java:125)
at seedu.address.model.ModelManager.updateFilteredClientList(ModelManager.java:253)
at seedu.address.logic.commands.ClientFindCommand.execute(ClientFindCommand.java:37)
at seedu.address.logic.LogicManager.execute(LogicManager.java:51)
at seedu.address.ui.MainWindow.executeCommand(MainWindow.java:185)
at seedu.address.ui.CommandBox.handleCommandEntered(CommandBox.java:40)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1784)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8879)
at com.sun.javafx.scene.control.behavior.TextFieldBehavior.fire(TextFieldBehavior.java:184)
at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.lambda$keyMapping$62(TextInputControlBehavior.java:330)
at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$KeyHandler.process(Scene.java:4058)
at javafx.scene.Scene$KeyHandler.access$1500(Scene.java:4004)
at javafx.scene.Scene.processKeyEvent(Scene.java:2121)
at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2595)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:248)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
at com.sun.glass.ui.View.handleKeyEvent(View.java:547)
at com.sun.glass.ui.View.notifyKey(View.java:971)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:830)
Not possible to only edit the tags of client notes
Whenever the client note edit
command is used, the nt
parameter has to be supplied. In addition, the application does not allow for copying of client notes. This means that if I wish to update the tags of a particular client note, I have to retype the entire note.
Naming of 'list' command is inconsistent
All commands that deal with clients are prepended with client
. The list
command however, is not. This is quite inconvenient as every other command dealing with clients have client
in front.
Able to delete country notes which are not displayed
In the user guide, it is stated that:
Deletes a note that is associated with a specific country at the given index based on the current view of the list panel displaying country notes.
However, it is possible to delete country notes which are not even being displayed. This is very confusing to the user.
Steps to replicate (using the default data on initial application load):
country note add c/SG nt/has one of the lowest corporate taxes in the world t/tax
country note delete 1
Full log:
INFO: =============================[ Initializing TBM ]=============================
Oct 30, 2020 4:41:52 PM seedu.address.MainApp start
INFO: Starting TbmManager V1.2.1ea
Oct 30, 2020 4:41:52 PM seedu.address.ui.UiManager start
INFO: Starting UI...
Oct 30, 2020 4:42:09 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][country note add c/SG nt/has one of the lowest corporate taxes in the world t/tax]
Oct 30, 2020 4:42:09 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: country Rest of command: note add c/SG nt/has one of the lowest corporate taxes in the world t/tax
Oct 30, 2020 4:42:09 PM seedu.address.logic.parser.MainParser parseCountryCommands
INFO: Command Type: note Rest of command: add c/SG nt/has one of the lowest corporate taxes in the world t/tax
Oct 30, 2020 4:42:09 PM seedu.address.logic.parser.MainParser parseCountryNoteCommands
INFO: Command Type: add Rest of command: c/SG nt/has one of the lowest corporate taxes in the world t/tax
Oct 30, 2020 4:42:09 PM seedu.address.model.note.Note <init>
INFO: --------------[New Note created with contents: has one of the lowest corporate taxes in the world]
Oct 30, 2020 4:42:09 PM seedu.address.model.note.Note <init>
INFO: --------------[New Note created with contents: ]
Oct 30, 2020 4:42:09 PM seedu.address.model.note.Note <init>
INFO: --------------[New Note created with contents: has one of the lowest corporate taxes in the world]
Oct 30, 2020 4:42:09 PM seedu.address.ui.MainWindow executeCommand
INFO: Result: Successfully added country note for Singapore (SG): [Singapore (SG)] has one of the lowest corporate taxes in the world
Oct 30, 2020 4:42:09 PM seedu.address.ui.MainWindow executeCommand
INFO: Widget View Option: NONE
Oct 30, 2020 4:42:14 PM seedu.address.logic.LogicManager execute
INFO: ----------------[USER COMMAND][country note delete 1]
Oct 30, 2020 4:42:14 PM seedu.address.logic.parser.MainParser parseCommand
INFO: Command Type: country Rest of command: note delete 1
Oct 30, 2020 4:42:14 PM seedu.address.logic.parser.MainParser parseCountryCommands
INFO: Command Type: note Rest of command: delete 1
Oct 30, 2020 4:42:14 PM seedu.address.logic.parser.MainParser parseCountryNoteCommands
INFO: Command Type: delete Rest of command: 1
Oct 30, 2020 4:42:14 PM seedu.address.ui.MainWindow executeCommand
INFO: Result: Deleted country note at index 1: [Singapore (SG)] has one of the lowest corporate taxes in the world
Invalid parameter example
Under the Parameter constraints summary
section, the following is stated:
Phone numbers should only contain numbers, and it should be at least 3 digits long.
e.g.p/9123 4567
The example input however does not work as it contains a whitespace.
Unable to add duplicate client notes
In the user guide, it is not stated anywhere that duplicate client notes are not allowed. Yet, the application does not allow the adding of client notes with the same text.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.