Timothy Lethbridge edited this page Jun 14, 2016 · 34 revisions
Clone this wiki locally

Each UCOSP participant is asked to log all the steps they take as they make progress through the semester. This includes difficulties they faced (getting set up, understanding how to model in Umple, using UmpleOnline, code that is difficult to figure out, and development tools that are hard to figure out, or don't seem to work properly). The more log entries added the more we can better get a grip on the usability issues with Umple, and the more we can help future new contributors come up to speed.

Please record entries in reverse chronological order

Log Entries

November 24 2015

I ran into a setback this week. That coupled with an exam + speech I had to present last week meant I couldn't progress. The setback is that I made an entirely new mode to accommodate highlighting class definitions green, but did not realize there was already a mode for umple found in the clike.js file. My new mode overwrote the old functionality (which was just highlighting umple syntax in purple). However the existing mode was wrapped in a DefineMIME function rather than DefineMode which is something I've never seen before with CodeMirror. I scoured the documentation and could not find what the difference was between these two functions since they took the same arguments and there was no explanation for DefineMIME, only for DefineMode. So I scoured the internet for examples of this function in use.

I came across A CodeMirror Mode for mIRC language that helped me out. I believe I can actually use DefineMIME and pass in a function as the mode definition argument and it would work the same way as DefineMode, it just skips a step in declaring the MIME type. I'm now looking at how I can edit the existing umple node to accommodate my new functionality, using the mIRC example as a base. A more simple example of a mode I've used is found here at StackOverflow.

November 17 2015

Issue 221. Working on Point 4 - all class references should be highlighted light green. To do this I have an idea that a list of all classes when first defined should be stored (as an extension of what I worked on on the 14th), then something can be used to recurse through and highlight each of these classes light green when found in the document. I'm looking at Match Highlighting right now but unsure if this is the right tool for the task.

November 14 2015

Looking at Issue 221. I am working on Point 4. Using the Mode Keyword I created a Mode for Class definitions and made it highlight each class definition green with css. This is only one part of Point 4. Will work on highlighting classname references light green.

November 3 2015

Fixed issues with 411 brought up by Timothy in latest commit. Reading documentation for CodeMirror.

Edit: Here is a more in depth explanation of how I fixed the issue with the zip file link being broken. The zip should contain the original code and should just appear with every tab as it would when the "Show Tabs" checkbox isn't selected -- this is what Timothy instructed. So I wanted to keep the zip link the same across all tabs, but I found that whenever a new tab was being clicked, it would erase the contents of the div element "MessageArea" which contained the zip link. I hard-coded the zip link with a fixed filename and wanted to make it dynamic, but never got around to doing this which was why the link was broken. This was a temporary solution to the bigger problem.

The main cause of the problem was that there was pre-existing code in the "ShowGeneratedCode" javascript function which completely overwrote the "MessageArea" div's html each time this function was called with an error message, but if there wasn't an error message, it would overwrite the div with blank html. Though this took me a while to pinpoint the issue, a simple if statement to check if there was actually an error and only THEN overwrite the "MessageArea" div was what fixed the issue. This allowed the zip file link to stay constant and not be cleared out each time a tab is clicked.

October 28 2015

Finished workaround for TextUml language option. Submitted new changes to pull request for review.

October 27 2015

The "Show Tabs" checkbox should not appear for languages that aren't Java/Php/Ruby/C++, so I've done that. However TextUml will still show the "Show Tabs" checkbox because in the dropdown it's value is listed as Java:TextUml, so it is treated as Java language. I am currently working on a workaround for this.

October 23-25 2015

Generated tabs when the "Generate Code" button is pressed rather than when the "Show Tabs" checkbox is checked off which fixed issue 3 and made issue 4 and 5 easy to include.

Received clarification from Timothy on Points 0 and Point 2 and have adjusted the PlayGroundMainTest appropriately. I had another question about this and am awaiting a reply from Timothy before I proceed with the pull request.

October 20 2015

Fixed Point 5 in failed Pull Request for Issue 411. Still looking at 3 and 4. Realizing I will need to generate the tabs contents when the "Generate Code" button is pressed, not when the "Show Tabs" checkbox is checked to get rid of these issues. Haven't had time recently since I was studying for a midterm but hopefully I can get this fixed for tomorrow/Thursday and remake the pull request.

October 17 2015

Fixed Point 1 and 2 in failed Pull Request for Issue 411. Looking into the bug mentioned in Point 3.

October 15 2015

I created a pull request for issue #411. I ran into problems since the repository I was working with had been cloned from umple/umple.git and not a forked repository. So I forked it to my GitHub account then attempted to clone that repository. But my Virtual Machine ran out of disk space. So I spent some time figuring out how to increase the disk space. Eventually I got it working. I made a branch of my forked repository, committed and pushed my changes to the branch, then made the pull request.

I noticed the check is failing in the pull request though. I did build and test the changes I made on my localhost and everything seems fine. I am not sure why the check is failing.

October 12 2015

Read through Aymen and Kevin's conversation about Pull Requests in preparation for making my Pull Request today or tomorrow for Issue #411. Looking into css changes I mentioned last update.

EDIT: Noticed a bug. At the end of each file's code block, the very last line, there's a bit of garbage html being outputted. For example, at the end of SpecificFlight.java in the Airline example you see </employeerole></employeerole></booking></booking>.... I am looking into why this is showing up.

October 10 2015

Continuing work on Issue #411. I modified the page such that the "Show Tabs" checkbox is not always checked on on page load.

I moved the output being displayed in alerts to code blocks that can be shown/hidden by pressing the button with the appropriate FileName above. This was a lot more difficult than I anticipated. Formatting the code block is done through syntaxhighlighter so I had to read up on how that works. I had to also modify the existing javascript function "showGeneratedCode" in umple_page.js to take in another argument if we're formatting a specific tab with one file's code or just the general code block with all files.

The css could possibly use some improvement, maybe a header above each code block to be explicit about which file is being shown, or the button being coloured differently. Also I'm using buttons when they should really be "tabs" so I want to change the css to represent that fact.

Additionally, when the checkbox is checked off, the buttons with each filename become hidden, and are regenerated through javascript each time the checkbox is re-checked.

October 6 2015

I've been busy with school since I had 2 midterms between the last log update and now, and another one this Thursday. However I have had some time to look at Issue #411 again. Previously, the buttons only displayed "File 1", "File 2", and so on so fourth, but I did a regex to find the filename within the generated code and use that for the button text, so it's a little more helpful for anyone using the feature.

September 29 2015

I made more progress on Issue #411. Now that I separated each files with // %% NEW FILE in the output string, I established that there are two ways to split up the files into separated tabs:

1) Use AJAX to recall umplesync.jar with an argument that will output the sourcecode as a bunch of files in the form of an array. Then just output each element of the array in a new tab. Every time the "Show Tabs" checkbox is checked off, this AJAX will be recalled.

2) Use Javascript/JQuery to split up the code that's already outputted on the page. This requires a bit of work, but makes the most sense since the code was already generated once and there is no need to regenerate it each time the "Show Tabs" checkbox is checked off.

So I went with route 2. I coded the Javascript necessary to split the main code block up into separate files and it seems to be correct when I dump the output to the console. When I get more time I will replicate the css/html format of the code blocks in the Javascript function so I can output the results to the page.

September 25 2015

I've been working on Issue #411. What I've done so far is separate the files in which the generated code is outputted. Each file is separated with a %% symbol followed by a message "filename BEGIN". I have also added the "Show Files in Separate Tabs" checkbox just below the "Generate Code" button.

I had to essentially relearn how vanilla Javascript works since I'm so used to JQuery and frameworks. But I've got a good grasp of how the JS on the UmpleOnline app works now. I've added an event such that when the "Show Files in Separate Tabs" checkbox is checked, tabs will appear above the code output window. The functionality to break the glommed code into these tabs is still yet to be included, though I am working on it currently.

September 18 2015

I attempted to setup UmpleOnline locally using the instructions found on this link. I was receiving an error on line 73 of compiler.php, stating that $_REQUEST["languageStyle"] was undefined. This didn't help much so Timothy instructed me to check the model.ump.erroroutput file for the temporary model I was trying to compile. I received the error:

Error: Unable to access jarfile umplesync.jar

After running the following command in my build directory:

ant -DshouldPackageUmpleOnline=true -Dmyenv=local -f build.umple.xml packageUmpleonline

My UmpleOnline was up and running after that. Which was great since I could begin working on the issue I just picked out (#411).

Implementing the feature listed in Issue #411 will allow the user to choose between glomming all files from the generated code together as one, or displaying them in separate tabs. I'll need to create a radio button to give the user the option, and if the "Tabs" option is selected, I will need to parse the output and tokenize it into separate files. I have a good idea of how this will be done since I am familiar with both Java and php.

September 16 2015

Timothy explained that the error I received below is indicative of running an older version of java with the newer version of ant. Sure enough, I checked my Java version and it was still Java 7. When I compiled in Java 8, the build ran successfully. I did receive an error about rake not being found, but after I installed rake it went away, so that was a minor setback. I will attempt to build with eclipse later tonight and report the results.

Edit: Attempted to set up Eclipse. On Step 4, where the Development Setup page says:

Go to the "Projects" Tab and add the project (1) cruise.umple.nebula and (2) jopt-simple.

When I do this, I do not see jopt-simple and can only select cruise.umple.nebula. I am not sure if this is a problem.

When finishing step 4, I still receive 859 errors and 1098 warnings in my cruise.umple project.

September 16 2015

I managed to fix the issue I've been having by updating JDK. However, after running the first build on the command line I receive these errors:

BUILD FAILED /home/adam/Documents/umple/umple/build/build.umple.xml:486: The following error occurred while executing this line: /home/adam/Documents/umple/umple/build/build.deps.xml:107: java.lang.UnsupportedClassVersionError: cruise/umple/util/UmplecAntTask : Unsupported major.minor version 52.0

I pulled the latest repository files and tried the bootstrap command again. Still, when running the first build command I receive the same errors.

September 8 2015

I read through the suggested wiki pages and made some examples using UmpleOnline. I then begun working on the development setup. I first had to install VirtualBox to run Ubuntu since I have Windows 7 on my laptop. The virtual machine runs quite slow on my laptop, so I might need to look into an alternative solution.

I ran into problems on Step 2b. of the Development Setup. I received the error: Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar Buildfile: build.xml does not exist! Build failed

However, the build continued after this. I think my Apache Ant isn't setup correctly but I'm not sure how to fix it.

When trying to build umple.cruise in eclipse I get about 6000 errors, and I'm assuming the errors are related to the ones in 2b.