|
| 1 | +# Project Title |
| 2 | +JavaSketchPad README |
| 3 | + |
| 4 | +## Getting Started |
| 5 | + |
| 6 | +These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See “How to work on this project?” for further development details. |
| 7 | + |
| 8 | +### Prerequisites |
| 9 | + |
| 10 | +``` |
| 11 | +Eclipse for Java (Eclipse Neon recommended) |
| 12 | +Java System Library [JavaSE 1.8] |
| 13 | +``` |
| 14 | + |
| 15 | +### Installing |
| 16 | + |
| 17 | +git clone the project through “github.com/UCSDOalads/JavaSketchPad” or through the following command: |
| 18 | + |
| 19 | +``` |
| 20 | +git clone https://github.com/UCSDOalads/JavaSketchPad.git |
| 21 | +cd JavaSketchPad |
| 22 | +``` |
| 23 | + |
| 24 | +## Contributing |
| 25 | + |
| 26 | +Please read “How to work on this project?” for details on our code of conduct, and the process for submitting pull requests to us. |
| 27 | + |
| 28 | +## Authors |
| 29 | + |
| 30 | +See also the list of [contributors](github.com/UCSDOalads/JavaSketchPad/graphs/contributors) who participated in this project. |
| 31 | + |
| 32 | +## Acknowledgments |
| 33 | +UCSD CSE B260 lab |
| 34 | + |
| 35 | + |
| 36 | +## User Interface Introduction |
| 37 | + |
| 38 | +### Menu bar: |
| 39 | +Contains all the functionalities that you can use on JavaSketchPad, mainly including Data (Input/Output Box, Annotations, etc), Lazy (Java class, method, etc), Edit (Zoom, font, etc), File (e.g. c.xml), Script (same as the “:” commands to quickly add objects). Among them, Generate, Developer, and View are deprecated or under-development. |
| 40 | + |
| 41 | +### Canvas: |
| 42 | +You can interact with the program on the canvas. |
| 43 | + |
| 44 | +### Action History Dialog: |
| 45 | +Action History: This table shows the actions user performed in order and each individual action could be highlighted for undo. |
| 46 | +Undo button: undo the last action. You can also select a row to highlight that action, so that undoing again will undo until that row (inclusive). |
| 47 | +Redo button: Similiar to Undo button. |
| 48 | + |
| 49 | +### Six Button tools: click on the button and click on canvas where you want to put the object (except for Line tool). |
| 50 | +Simple Point: a basic developer point that can be connected with Lines |
| 51 | +Select: the default mode that can select other components on canvas |
| 52 | +Line: select the Line tool, then connect one point to another. If you want to connect points to pass on data, you have to select the point that contains data and then select the point that the data is going to. This sequence does not matter for Simple Point. |
| 53 | +Class (C): create a Java class constructor that can be used to create its methods. To create a method, only select one class, and then click on menu bar (Lazy -> Add -> Java Method). The dot on the left side of a method is input/argument, while the dot on the right side is output/return value. |
| 54 | +InputBox (I): A data input box that can be updated with double click or a click on menu bar (Data -> InputBox -> Update). It can also be connected to the left dots of method to pass in argument for methods. |
| 55 | +OutputBox (O): A data output box that can be updated with a click on menu bar (Data -> OutputBox -> Update), but only after it is connected to the right dots of method and all the left dots are connected with data. |
| 56 | + |
| 57 | + |
| 58 | +## Open Source Code: Package Description |
| 59 | + |
| 60 | +``` |
| 61 | +actions: implements all the actions that users could make interactions from the menu bar |
| 62 | +actions.edit.undoredo: handles undo and redo actions |
| 63 | +actions.global: defines the general structure of global actions |
| 64 | +actions.global.globalactions: all the global actions, which are utilized in the actions package |
| 65 | +actions.menu: make connections with the menu items and the associated actions |
| 66 | +actions.singleinstanceoperactions: actions on one and only one instance. |
| 67 | +buttons: define the structure of tool buttons, which are displayed on the top of the frame |
| 68 | +classpathutil: contains the utility classes to generate the names and paths of all the classes in the java standard library and external jar files. The package also contains a search engine that allows users search for classes |
| 69 | +file: implements I/O functionality |
| 70 | +paintcomponents: define the components in the main panel, including line segments, single point, etc. |
| 71 | +paintcomponents.annotations: implement the annotation functionality |
| 72 | +paintcomponents.data: define the components that is associated with data |
| 73 | +paintcomponents.haskell: |
| 74 | +paintcomponents.java.interactive: the interactive version of paint components of class, constructor, method and fields |
| 75 | +paintcomponents.java.lazy: the lazy version of paint components of class, constructor, method, and fields |
| 76 | +painttools.toolbar: define the structure of the tool bar, which is displayed on the top of the frame |
| 77 | +painttools.tools: define tool buttons in the toolbar |
| 78 | +script: connect several commands to actions |
| 79 | +settings: settings of the program |
| 80 | +typesystem: check the type of input and output data box |
| 81 | +ui: main frame of the program |
| 82 | +ui.cursor: set custom cursor |
| 83 | +ui.general: include input manager of the program |
| 84 | +ui.helper.classsearch: help do the search for class |
| 85 | +ui.helper.historyui: frame for history(undo, redo) actions |
| 86 | +ui.helper.historyui.undoredoLog: generate log for undo/redo Log |
| 87 | +ui.helper.methodinput: implements the method input functionality. The package contains a method input frame and a method searching engine. |
| 88 | +ui.icons: icons used in the program |
| 89 | +``` |
0 commit comments