Let me put my first entry violating the guidelines as well. I'll give the current state of the pCSDT software.
Although it's still far from having aesthetically pleasing appearance, now it provides more functionality. Here are some of the latest additions to the project.
Although it's still far from having aesthetically pleasing appearance, now it provides more functionality. Here are some of the latest additions to the project.
- Object creation: As seen in the snapshot, it is possible to create and add objects from the bottom left panel of the applet. Once a class is selected, it shows a dialog box in which you give the object a name. Once an object is created, all object lists are updated. (see method call).
- One issue about this panel: Some objects may need initial values for construction so this panel can update itself according to the selected class to set the initial parameters.
- Variable Panel : This panel can be seen under the "Variables" tab of the tabbed panel. In the upper part, the list of active variables are listed. Whenever a variable is created, it is declared as global and the user should give the type and initial value here. So even if the value of a variable changes by an assignment statement in the coding space, the variable list shows only the initial value. Variable creation panel is just below the list, and it shows the message of success/failure message after each variable creation attempt. As in the objects, variable lists are updated whenever a new variable is created. Currently there is no type checking.
- Method Calls: As seen in the first picture, there is a rectangular box named "Method Call". Once it is dragged&dropped to codding space, a method call code is added to the coding area. This panel composed of three main parts:
- Object Combo Box: Users should select one of the active objects from the object list. According to the selected object, methods combo box updates its contents.
- Method Combo Box: It fetches the possible methods according to the selected object. Currently we do only support pre-defined methods.
- Parameters Panel: According to the selected method, it updates the panel. Since each method has a different signature, (i.e. different number of parameters, parameters in different types) this panel updates itself. The names of the parameters can be seen as tipToolTexts. (e.g. Z can be seen in the snapshot) As of now, we only have textboxes per parameter, but they should also able to enter variables or expressions. ( see expressions)
- Expressions: This panel does not work or seem as expected as of now. But it should provide a recursive GUI. As seen in the next screenshot, this loop should run as long as the selected variable equals an expression. This expression can be a value (number, string), a variable, or a new expresion composed of two expression connected by an operator. In the variable case, it should give a combobox of variables, and the last case it should update the panel so that now there are 2 expression and a combobox for the operator.
The following issues should be discussed:
- Appeareance: Having panel for each statement fills up the coding space very quickly. We should try to find ways to shrink those things.
- Variables: Will we need other types than integer or string? What kind of operations will we define on them? Type checking also needs to be done.
- Save/Load: Saving and loading can be added just for the coding space easily. But how will we make saving custom methods(such as, let's say "moonwalk" method)? Even how to create new methods is still unresolved.
No comments:
Post a Comment