Giter Club home page Giter Club logo

jtext's People

Contributors

rideg avatar

Watchers

 avatar  avatar

jtext's Issues

Add treeview widget

It should be able to show a tree structure (for example a directory structure).

Requirements

  • When the widget receives focus then it should the selected element highlighted.
  • The user should be able to navigate with the ARROW KEYS:
    • RIGHT should open a subtree if the current element has children.
    • LEFT should close the subtree of the current element if it has any and it is already opened or should jump to the parent otherwise.
    • UP should go the previous sibling or the parent if the current element is the first child or should remain at the same position if the current element is the root.
    • DOWN should jump to the next sibling or the next sibling if the parent or the next sibling of the grandparent (and so on) if the current is last sibling or should stay at the same position if there is no such next element.
    • PG-DOWN should jump to the last element.
    • PG-UP should go to the root.
  • It should be able to accept custom key event handlers: if the user press the predefined key then the given listeners should be notified with the current tree element.

Other

  • Add unit tests
  • Add theme support

Add tabview widget

Create a tabview in order to contain text editors and allow users to navigate among them.

Requirements

  • If there are now tabs then a default message should be shown.
  • If there are multiple tabs then a tab header are must be shown where the user can see each tab's name.
  • The active tab must be highlighted.
  • The tab headers have a minimum and a maximum width so that if there is not enough space they can shrink in size.
  • If there is not enough space to show all tab headers even on the minimum width then it must be indicated with a small arrow in the left or the right or both depending on where are additional tabs.
  • If there are multiple tabs and the user presses ALT+LEFT then the next tab left from the current tab must be activated; if the current tab is the leftmost then the rightmost tab should be activated.
  • If there are multiple tabs and the user presses ALT+RIGHT then the next tab right from the current tab must be activated; if the current is the rightmost then the leftmost tab should be activated.
  • If the user presses ALT-DOWN then a TypeInList selector should be shown with all the tab names in it and if the user selects one of the tabs then that tab should be activated.
  • The selected tab's header needs always be visible, so after changing tab the view might required to be changed.

Other tasks

  • Add unit tests
  • Add theme support for the widget

Add file open dialog

It should provide a text field into which the user can type in the path and the name of the file which he/she would like to open.

Requirements

  • If the user hits TAB then a GridSelector should be shown with the filenames in the current working directory match the last path segment has already typed in.
  • If the user hits the ESC the GridSelector should disappear.
  • If the user hitsTAB again the focus should move to the first element in the GridSelector
  • In the GridSelector the user should be able to navigate among filenames with TAB, SHIFT+TAB and the ARROW- keys, and the selected filename should replace the last segment of the already typed in path inside the TextField.
  • If the user continues typing then the file names must be filtered accordingly even if the GridSelector has already been visible and the path's last segment must be restored and extended inside the TextField.
  • If the user hits ESC then the GridSelector must disappear and the value of last segments should be restored.
  • If the user selects a directory from the list and type / then the GridSelector should disappear and the current working directory should be changed.
  • If the user types in an invalid path it must be indicated by changing the TextField's text or background color
  • If the user hits ENTER on a valid path then the observers should be notified about the selection

Other

  • Add theme configuration for the file dialog box
  • Add unit tests to check the behaviour

Add TypeInList widget

This widget lets the user to filter a menu by typing into a text field.

Requirements

  • When created an initial list of elements should be provided which will be shown
  • When the user starts typing into the TextField the list of elements should be filtered and the matching character must be highlighted.
  • At first always the first element is selected in the list.
  • The user can change selection by pressing UP or DOWN and the selection can wrap around.
  • If user continue typing the the selection goes back to the firts element.
  • If the user hits enter the observers must be notified about the selected element.
  • If there are more elements than can shown than the menu become scrollable.

Other tasks

  • Add unit tests
  • Add theme support for the widget

Example

Typed in Elements in list
test1, hallo, element, other
t test1, element, other
te test1, other
ter other

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.