Code Monkey home page Code Monkey logo

kdbstudio's People

Contributors

charlesskelton avatar charlieskelton-kx avatar custodian avatar dernasherbrezon avatar dzmipt avatar kmatveev avatar punx120 avatar yanpas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

kdbstudio's Issues

NPE in Config

This is to incorporate PR:
CharlesSkelton#25

I suspect that kdbStudio wouldn't start if there is no config file (i.e. the first start up).

Refresh action repeats the last query

Refresh the result set button repeats the last query and opens one more tab.

Probably more intuitive solution would be to refresh current tab and do not re-open a new tab

Adding/removing servers doesn't work

  1. Removing a server from root:
    2021.04.02 09:13:17.120 [AWT-EventQueue-0] ERROR stderr - Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Can't add folder with empty name
    2021.04.02 09:13:17.121 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.Config.setServerTree(Config.java:576)
    2021.04.02 09:13:17.121 [AWT-EventQueue-0] ERROR stderr - at studio.ui.ServerList.removeNode(ServerList.java:458)
    2021.04.02 09:13:17.121 [AWT-EventQueue-0] ERROR stderr - at studio.ui.ServerList.lambda$initActions$2(ServerList.java:356)
    2021.04.02 09:13:17.121 [AWT-EventQueue-0] ERROR stderr - at studio.ui.UserAction$1.actionPerformed(UserAction.java:33)
  2. Adding server into a folder (using Insert server) returns
    java.lan.IllegalArgumentException: Can't add folder with empty name

Error trying to build chart

Actually the table was not something which is supposed to be used for charting, but still
([]a:1 2 3;b:string 10 20 30)

2021.03.31 08:09:52.123 [AWT-EventQueue-0] ERROR stderr - Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: studio.kdb.K$KCharacterVector cannot be cast to studio.kdb.ToDouble
2021.03.31 08:09:52.124 [AWT-EventQueue-0] ERROR stderr - at studio.ui.LineChart.createDataset(LineChart.java:190)
2021.03.31 08:09:52.124 [AWT-EventQueue-0] ERROR stderr - at studio.ui.LineChart.(LineChart.java:31)
2021.03.31 08:09:52.124 [AWT-EventQueue-0] ERROR stderr - at studio.ui.StudioPanel$21.actionPerformed(StudioPanel.java:1157)
2021.03.31 08:09:52.124 [AWT-EventQueue-0] ERROR stderr - at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
2021.03.31 08:09:52.124 [AWT-EventQueue-0] ERROR stderr - at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
2021.03.31 08:09:52.125 [AWT-EventQueue-0] ERROR stderr - at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
2021.03.31 08:09:52.125 [AWT-EventQueue-0] ERROR stderr - at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
2021.03.31 08:09:52.125 [AWT-EventQueue-0] ERROR stderr - at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
2021.03.31 08:09:52.125 [AWT-EventQueue-0] ERROR stderr - at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
2021.03.31 08:09:52.125 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.processMouseEvent(Component.java:6539)
2021.03.31 08:09:52.125 [AWT-EventQueue-0] ERROR stderr - at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
2021.03.31 08:09:52.126 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.processEvent(Component.java:6304)
2021.03.31 08:09:52.126 [AWT-EventQueue-0] ERROR stderr - at java.awt.Container.processEvent(Container.java:2239)
2021.03.31 08:09:52.126 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.dispatchEventImpl(Component.java:4889)
2021.03.31 08:09:52.126 [AWT-EventQueue-0] ERROR stderr - at java.awt.Container.dispatchEventImpl(Container.java:2297)
2021.03.31 08:09:52.126 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.dispatchEvent(Component.java:4711)
2021.03.31 08:09:52.127 [AWT-EventQueue-0] ERROR stderr - at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
2021.03.31 08:09:52.128 [AWT-EventQueue-0] ERROR stderr - at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
2021.03.31 08:09:52.128 [AWT-EventQueue-0] ERROR stderr - at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
2021.03.31 08:09:52.128 [AWT-EventQueue-0] ERROR stderr - at java.awt.Container.dispatchEventImpl(Container.java:2283)
2021.03.31 08:09:52.128 [AWT-EventQueue-0] ERROR stderr - at java.awt.Window.dispatchEventImpl(Window.java:2746)
2021.03.31 08:09:52.128 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.dispatchEvent(Component.java:4711)
2021.03.31 08:09:52.128 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
2021.03.31 08:09:52.128 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.access$500(EventQueue.java:97)
2021.03.31 08:09:52.129 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$3.run(EventQueue.java:709)
2021.03.31 08:09:52.129 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$3.run(EventQueue.java:703)
2021.03.31 08:09:52.129 [AWT-EventQueue-0] ERROR stderr - at java.security.AccessController.doPrivileged(Native Method)
2021.03.31 08:09:52.129 [AWT-EventQueue-0] ERROR stderr - at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
2021.03.31 08:09:52.129 [AWT-EventQueue-0] ERROR stderr - at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
2021.03.31 08:09:52.129 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$4.run(EventQueue.java:733)
2021.03.31 08:09:52.129 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$4.run(EventQueue.java:731)
2021.03.31 08:09:52.130 [AWT-EventQueue-0] ERROR stderr - at java.security.AccessController.doPrivileged(Native Method)
2021.03.31 08:09:52.130 [AWT-EventQueue-0] ERROR stderr - at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
2021.03.31 08:09:52.130 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
2021.03.31 08:09:52.130 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
2021.03.31 08:09:52.130 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
2021.03.31 08:09:52.130 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
2021.03.31 08:09:52.131 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
2021.03.31 08:09:52.131 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
2021.03.31 08:09:52.131 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
2021.03.31 08:09:54.792 [AWT-EventQueue-0] ERROR stderr - Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: studio.kdb.K$KCharacterVector cannot be cast to studio.kdb.ToDouble
2021.03.31 08:09:54.792 [AWT-EventQueue-0] ERROR stderr - at studio.ui.LineChart.createDataset(LineChart.java:190)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at studio.ui.LineChart.(LineChart.java:31)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at studio.ui.StudioPanel$21.actionPerformed(StudioPanel.java:1157)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
2021.03.31 08:09:54.793 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.processMouseEvent(Component.java:6539)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.processEvent(Component.java:6304)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.Container.processEvent(Container.java:2239)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.dispatchEventImpl(Component.java:4889)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.Container.dispatchEventImpl(Container.java:2297)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.dispatchEvent(Component.java:4711)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.Container.dispatchEventImpl(Container.java:2283)
2021.03.31 08:09:54.794 [AWT-EventQueue-0] ERROR stderr - at java.awt.Window.dispatchEventImpl(Window.java:2746)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.awt.Component.dispatchEvent(Component.java:4711)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.access$500(EventQueue.java:97)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$3.run(EventQueue.java:709)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$3.run(EventQueue.java:703)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.security.AccessController.doPrivileged(Native Method)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$4.run(EventQueue.java:733)
2021.03.31 08:09:54.797 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$4.run(EventQueue.java:731)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.security.AccessController.doPrivileged(Native Method)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
2021.03.31 08:09:54.798 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Edit Server lost position of the server in Server Tree

Steps to reproduce:

  1. Select a server in the Server Tree
  2. Server -> Edit menu
  3. Amend server details and save

Expected: server details will be at the old location in the server tree
Actual: Server is removed from the server tree and then it is added into the end at the root level

Restoring panel contents after restart

I spot at least the following: I opened the Studio with one panel which was saved to a *.q file. I create a new (unnamed) panel and closed the first one. When I restart the Studio, I expected to get unnamed panel. Actually I got again one panel with the *.q file.

Underscores in table cells

Observed in Windows with tables having underscores in their names.

Underscores are not visible in table output - it looks they cell grid is drawn on top of the underscores symbols. As the result it is not obvious if entity has underscore or space char.

OOM Exception in logs not reported to user

It looks there was big (30Mb) response from remote server. There was no output. Logs have an exception. It should be some notifacation to the user about the error.
2021.03.30 15:37:21.251 [AWT-EventQueue-0] ERROR stderr - Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
2021.03.30 15:37:21.251 [AWT-EventQueue-0] ERROR stderr - at java.util.Arrays.copyOf(Arrays.java:3332)
2021.03.30 15:37:21.252 [AWT-EventQueue-0] ERROR stderr - at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
2021.03.30 15:37:21.252 [AWT-EventQueue-0] ERROR stderr - at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
2021.03.30 15:37:21.252 [AWT-EventQueue-0] ERROR stderr - at java.lang.StringBuilder.append(StringBuilder.java:136)
2021.03.30 15:37:21.252 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$KDate.format(K.java:627)
2021.03.30 15:37:21.252 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$KBaseVector.formatVector(K.java:1061)
2021.03.30 15:37:21.252 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$KBaseVector.format(K.java:1072)
2021.03.30 15:37:21.253 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$KList.formatVector(K.java:1123)
2021.03.30 15:37:21.253 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$KBaseVector.format(K.java:1072)
2021.03.30 15:37:21.253 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$Flip.format(K.java:835)
2021.03.30 15:37:21.253 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$Dict.format(K.java:802)
2021.03.30 15:37:21.253 [AWT-EventQueue-0] ERROR stderr - at studio.kdb.K$KBase.toString(K.java:75)
2021.03.30 15:37:21.253 [AWT-EventQueue-0] ERROR stderr - at studio.ui.CellRenderer.getTableCellRendererComponent(CellRenderer.java:52)
2021.03.30 15:37:21.253 [AWT-EventQueue-0] ERROR stderr - at studio.ui.WidthAdjuster.resize(WidthAdjuster.java:91)
2021.03.30 15:37:21.254 [AWT-EventQueue-0] ERROR stderr - at studio.ui.WidthAdjuster.resizeAllColumns(WidthAdjuster.java:67)
2021.03.30 15:37:21.254 [AWT-EventQueue-0] ERROR stderr - at studio.ui.QGrid.(QGrid.java:135)
2021.03.30 15:37:21.254 [AWT-EventQueue-0] ERROR stderr - at studio.ui.TabPanel.initComponents(TabPanel.java:49)
2021.03.30 15:37:21.254 [AWT-EventQueue-0] ERROR stderr - at studio.ui.TabPanel.(TabPanel.java:42)
2021.03.30 15:37:21.254 [AWT-EventQueue-0] ERROR stderr - at studio.ui.StudioPanel.queryExecutionComplete(StudioPanel.java:2164)
2021.03.30 15:37:21.255 [AWT-EventQueue-0] ERROR stderr - at studio.ui.action.QueryExecutor$Worker.done(QueryExecutor.java:152)
2021.03.30 15:37:21.255 [AWT-EventQueue-0] ERROR stderr - at javax.swing.SwingWorker$5.run(SwingWorker.java:737)
2021.03.30 15:37:21.255 [AWT-EventQueue-0] ERROR stderr - at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832)
2021.03.30 15:37:21.255 [AWT-EventQueue-0] ERROR stderr - at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
2021.03.30 15:37:21.255 [AWT-EventQueue-0] ERROR stderr - at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842)
2021.03.30 15:37:21.255 [AWT-EventQueue-0] ERROR stderr - at javax.swing.Timer.fireActionPerformed(Timer.java:313)
2021.03.30 15:37:21.255 [AWT-EventQueue-0] ERROR stderr - at javax.swing.Timer$DoPostEvent.run(Timer.java:245)
2021.03.30 15:37:21.256 [AWT-EventQueue-0] ERROR stderr - at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
2021.03.30 15:37:21.256 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
2021.03.30 15:37:21.256 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue.access$500(EventQueue.java:97)
2021.03.30 15:37:21.256 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$3.run(EventQueue.java:709)
2021.03.30 15:37:21.256 [AWT-EventQueue-0] ERROR stderr - at java.awt.EventQueue$3.run(EventQueue.java:703)
2021.03.30 15:37:21.256 [AWT-EventQueue-0] ERROR stderr - at java.security.AccessController.doPrivileged(Native Method)

Error in rendering result

Played with such object:
get `:test1/ set ([] qqq:1.1 2.2 3.3 4.4 5.5; c:{ ([] a:x+til 3; b: til 3)} each til 5)

Got the following Exception:
Error occurred during query execution: kx.c$K4Exception: type kx.c$K4Exception: type
at kx.c.k(c.java:678)
at kx.c$1.run(c.java:138)
at java.lang.Thread.run(Thread.java:748)

Workspaces

The idea is to save/restore all settings, open tabs, etc. It will allow to have separate workspace for different projects

Single jar to start application

How to start the application? It is possible to start with gradle or to use a script which add all jars into classpath (actually the script is created during gradle distribution task).

To simplify application start up, probably we need to have a target (a way) to package all dependencies into a single jars. Is it Spring Boot?

Set editor tab names

At the moment, tabs are named by filename or Script in case the script wasn't loaded or saved. In the latter case, i propose to name tabs based on connected server name or host:port.

Wizard to set background color for all servers

Use-case: it is nice to highlight servers to Production with different (e.g. red) color.

It looks we need a wizard which set background (defined by a user) to servers which match to rules. The rules could be something like:
if name has prod (ignore case), color is red (Color selection)
if host has prd, color is red
if folders have ProjectBlahBlah, color is green

Word wrap in text editor

At the moment long lines can be horizontal scrolled. Is it difficult to have word wrap in current text editor? Reformat (to add extra \n) might be not a best option as the line could have comments in the end of the line

Timezone in logs

At the moment it looks logs at ~/.studioforkdb/log are in UTC timezone. On one hand, it is not obvious from log file. On the another hand, probably it makes sense to have logs in user local timezone

Error on query executions when socket is recreated

  • connect to a q from a Studio and execute some queries;
  • restart q opening the same port
    The next query in Studio will error:
    studio.ui.action.QueryExecutor - Error occurred during query execution
    java.io.EOFException: null

All next queries are ok

Option to prevent to execute all script

Ctrl+E executes all lines from the file (the whole script) in case nothing is selected.

It could be not useful. Let's add an option into settings to not execute everything if nothing is selected (another option is to ask user if he/she wants to execute everything)

Add logging of executed queries

It is nice to keep all executed queries into a file. It makes sense to have date/time when the query was sent for execution; likely duration and connection details of server.

Open in Excel is broken

Trying to open in Excel results in Excel saying that the file is broken.
Trying to Copy in Excel format, Paste into Excel all cells (except header) with something like
studio.kdb.KFormatContext@11c696d9

Memory leak

If huge results are loaded, even if tabs were disappeared, the memory is not freed.

Last commit introduced TabPanel.cleanUp() which looks like is fixing the problem. However why a reference is not deleted to a TabPanel during tab removal requires further investigation

Add custom decimal format

It used to be possible to add custom decimal format - it was a property DecimalFormat in Studio property config. During introduction of thousands separator, this was disappeared. Probably we can add this into Settings menu?

Huge result: dynamic rendering of pieces

It looks Swing controls takes much more memory than result itself (actually requires double check). If this is a case, it is possible situation when results fit into memory however the whole JTable is too huge. May be we can have rendering of visible piece of table

Syntax highlighting for symbols

At the moment, / and : are not treated as possible characters for symbol atom.
Kdb doesn't recognized `a/bas symbol. However the following are legitimate symbols `:a/b, `:, `asdf:asdfsa//asdf:

FileChoose dialog can open longer first time

I think that initial initialization of the Dialog might require longer time especially if there are network mounts.

Probably we can re-use File Choose dialog between different panels. If we open a file in a frame where we previously loaded file, the dialog would be initiated to the corresponded path. If it is a new frame, the dialog would show last selected location.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.