Archive for the ‘Feature’ Category
ForeUI V3.40 is now released. At the same time the “UI Theme Editor” plugin and the “Blueprint” UI theme are also available in ForeUI store.
New UI Theme, and Themes Menagement
Since this version, you are able to use a new “Blueprint” UI theme. This new UI theme is not included by default, but you could download it in ForeUI store. What’s more, by using the new “UI Theme Editor” plugin, you could custom existing UI themes or create your own UI theme from scratch.
In UI theme management window, you could import UI theme file (.thm) created by others, download UI theme from ForeUI store, or delete the downloaded UI themes.
After the first time you choose the “Create/Edit UI Theme” in popup menu, you will be prompt to download and install the plugin. If you are using Windows 7 or above, please notice that you will need to run ForeUI as administrator to allow it to save plugin file in the install directory. If you download ForeUI and install it again, the installer will automatically configure your system to run ForeUI.exe as administrator. After installing the UI theme editor, you use it to define UI theme:
Easily Make Element Draggable
Sometimes you may want to make an element draggable in HTML5 simulation. This could be achieved by handling several mouse events, as introduced in this article. Manually defining the behavior is not an easy job, it could be time consuming and easy to make mistake. Now we have a better choice! We could make element draggable with just single click, without knowing how it works. You can find a new option in the popup menu for “Quick Define…” button, which will automatically generate the behavior for a specific element.
Zoom In/Out with Mouse Wheel
Since V3.40, you can hold Ctrl key on keyboard, and scroll your mouse wheel to zoom in or zoom out the working area.
We have made a lot efforts on improving the performance of processing huge plots. You will notice that in V3.4, even those plots with a lot of pages and complex behavior could be edited fluently, also the memory usage may be reduced. If you need to create complex plots frequently, you will definitely like this version.
Other New Features and Improvements
There are other new features, enhancements and bug fixings in this upgrade. If you are interested, please get the complete list of changes in this version here.
ForeUI V3.3 is just released today! It has been a while since our last release, so thank you for the patience . In this version we have made some internal alignments between ForeUI and the UI theme editor (as ForeUI plugin), so I guess you will see the brand new UI theme editor very soon. Of course this new version contains many useful new features and enhancements, and fixed some annoying bugs. Now let’s check them out.
Quick Define Behavior
This new feature allows you to quickly define some simple behaviors by much easier way. After selecting an element (e.g. a button), you will see the “Quick Define…” button in behavior editor is enabled, which will bring you a list of quick define wizards. You will be asked to choose target page, select target element, input message to display or the URL to go, as long as ForeUI collects enough information, it will generate the behavior definition for you. This can significantly simplify your work.
“Mini” Sub Style
Since this version, all default UI themes support the “Mini” sub style for window, check box, radio button and radio button group. When you select one of these elements, you can find a drop-down list in the “Style” row in the tools panel, then you can choose between the default style and the “Mini” style.
Here is the comparison between default style and the “Mini” style, on different UI themes.
In the future, with the UI theme editor, you will be able to create your own sub style, and easily apply it on your design (just like this “Mini” one).
Default Text Size
In previous versions you could specify the default font of the plot, but could not change the default text size. Now you can!
Open the plot configuration window via the “Plot Settings…” button, you will see a new option that allows you to do that.
Please notice that, the default text size will only be applied to the elements that you NEVER changed its font size. If you have ever changed it, it will remember your modification and will not take the default text size. Is there a way to reset it to use the default font? Yes, you just need to choose the element you want to reset, and then click the “Reload Style” button in the “Style” row in tools panel, as shown below:
Better Behavior Diagnose
Any illegal value in the expression will be detected and make the behavior entity unavailable (displayed with strike-through), and it will not really be included in the simulation. Thus the simulation is protected and you also have the information to find out which line is wrong in behavior. The example below was a killer to the simulation (because the “ForeUI Test” string value does not have quote marks enclosed). Now it is detected as an error and will not harm your simulation anymore, and you can fix it by knowing it is wrong.
Hide Text on Behavior Editor Toolbar Button
This is really a minor enhancement, but I’d like to mention it, otherwise you may not notice it is there
The idea is to allow hiding the text on the toolbar button, in behavior editor. Thus you don’t need to scroll the toolbar if you are running a lower resolution. The new option can be found in the settings window, under the display tab.
This option is on by default (show text on button). If you turn it off. You will have a much smaller toolbar in the behavior editor and the button text will be displayed as tool-tip instead.
Other New Stuff
There are more new features, enhancements and bug fixings. I am not going to introduce them one by one since they are quite easy to understand if you check them out in the update history page.
Enjoy using ForeUI and feel free to contact us
The newly released V3.2 introduced a very useful feature, which allows you to set the tooltip for any element. It is a real tooltip: once the it is set, it will take effect automatically in the simulation. You don’t need to simulate the tooltip by yourself anymore.
Here is how it will look like in the simulation:
If the tooltip is not set (empty), the element will not have tooltip in simulation, just like it did in the previous versions.
Selected/Unselected Event for Checkbox/Radio Button
Since this version, you don’t need to check the checkbox/radio button state in a conditional branching anymore, just handle the “Element Selected” or “Element Unselected” events for checkbox/radio button, and you will get notified when the element selection state is changed.
New Action to Change Button Text
Now you can use the new “Set Button Text” action to change the text on the button. That means you can have some dynamic button in your prototype.
Change Element Order
If you create some elements with the same Z value, the only thing that decides how to overlap them is the element order. The element with smaller order index will be rendered earlier. Now you can change element’s order in the outline view: just select the element and click the “move up” or “move down” button at the bottom, you will see the overlap order is changed accordingly.
Hotkey to Group/Ungroup Elements
Now you can press Ctrl+G to group the selected elements, and press Ctrl+Shift+G to ungroup the group you selected. If you are using Mac OS X, the hotkey should be Command+G/Command+Shift+G.
There are More
There are more enhancements in this version. Please read the update history for more details.
Since ForeUI V3.0, there is an “HTML5″ tab in the settings window, and we can make some configurations for the HTML5 generation. As shown in the figure below, there are two columns of configurations, and they have the same content. The difference is that, the left column is for running HTML5 simulation (clicking the “Run Simulation” button in ForeUI), while the right column is for exporting HTML5 (clicking “Export HTML5″ button in ForeUI). Most of the settings in this window explain themselves, except the “Lazy Loading”. This option is turned off by default, which means all contents in the simulation have to be loaded by the web browser before showing the first page. You will see the loading page before the entire loading process is done. If the simulation is big and complex, you may have to wait for a long time, which is bad. In this case, you can consider turning this “Lazy Loading” option on. It will try to display the first page as soon as possible, and keep loading the rest part of simulation in the background. If you load the simulation with a web browser that has status bar shown, you will see the loading progress like this: The first page of simulation will appear when all its content are loaded. You can review and interact with the page and wait for the loading of other pages. If reviewing the first page takes some time, the next page may have been loaded in the background before you switch to that page. Thus we reduce the actual loading time for the simulation.
The figure below explains how the “lazy loading” option works:
What if the target page is not completely loaded when we try to show it? This can happen if “Lazy Loading” option is turned on. In this case we will see the loading page appears again and we have to wait for the loading of that page.
If the loading time of your simulation is acceptable, you don’t need to turn on the lazy loading. If you want to shorten the loading time, you can try to turn the “Lazy Loading” option on.
I should mention that using a faster web browser (e.g. Chrome) will be a good solution to accelerate the simulation loading. However it may not be acceptable in some cases.
ForeUI V3.10 is released on 5th December, 2012. We have made a lot of optimization in this version and now it becomes much faster and smoother. What’s more, there are some exciting new features and enhancements.
This feature is designed for team collaboration. Your team members may work on different parts of the design as different plot files. Finally you may wish to merge all plots together, and here is the way to go. You can use the “Import Plot” feature to Import another plot into the current editing plot. You can decide where to place the new pages (before or after current existing pages), and you can specify how to align the new pages with the old ones (if they have different size).
This feature is available in the “File” menu. The “Import Plot…” item will be enabled if you have at least one plot opened for editing.
From this version, you can specify the background image for the entire plot. You will be able to find some new options after clicking the “Plot Settings…” button on bottom right corner. The background image can be tiled horizontally, vertically or in both directions. You can also configure how to align the background image with the page.
Compatible with Mountain Lion
We have a blog post about the issue when running ForeUI in Mountain Lion (Mac OS X 10.8). Now the problem is solved. ForeUI application is signed with Apple Developer ID certificate now, and you will get smooth experience when installing ForeUI into your Mountain Lion system.
What’s more, we have fixed some minor issues and made some improvements for Mac OS system. We even created a new installer for it:
Input Element Id in Chooser
In previous versions. When the element chooser is shown up, you will need to select element in the plot editing area. If the target element is covered by other elements, or it is in another page, it will take you some time to find it out. Now you have another choice: you can directly input the element’s id in the chooser. You don’t have to remember all the IDs, just start typing the prefix of the id and you will see all candidates are listed, which is fancy
There are more content in this update. You can check out this page to see other new features, enhancements and fixed bugs in this release.
ForeUI offers a powerful behavior engine, which allows you to define complex interaction in an elegant way for any GUI element on the screen. Sometimes you may want to run multiple tasks parallelly, which is also called “multi-threading” in the software industry. For example, assume we have a button, and we want to move it on right-down direction and enlarge it at the same time. Is it possible to do so in ForeUI? The answer is positive, that’s why I write this post
First let’s create a single-thread version for the example, so you can later compare it with the multi-threading version. The example only contains one button element (Button_1) and its behavior is defined as below:
There are two loops in the event handler for “Element Clicked” event: one for moving and one for resizing the button. I designedly use different looping parameters for them, so we have good reason that not to merge them into one loop. Since it is a single-thread version, it can only do the moving and resizing in sequence, like this:
Now lets try to make the multi-threading. The basic of the trick is that, the event triggering is not a blocking call. That means, when you trigger two events in order, the second event will not wait for the execution of event handler for the first event. As a non-blocking call, triggering an event takes almost no time, so the two events seems to be triggered at the same time, and their event handlers seems to be launched together.
So I changed the behavior for Button_1 as below. I added two “Element_Clicked” events to Button_1 and they will do moving and resizing accordingly. There are two warnings (highlighted with yellow) since we place the same event twice in one element. We know what we are doing, so just ignore these warnings.
Since the two loops are placed in different event handlers, they will be launched at (almost) the same time, thus you will see they are executed parallelly:
If you’d like to place the behavior definition in custom event handler, you can modify the example like this: (download this plot file)
If you don’t want to use global custom event, you can define it as the private event for Button_1, like this: (download this plot file)
The three examples above will work in the same way, you can choose the one you like when you want to do multi-threading in ForeUI.
The official release of ForeUI V3.0 is delivered today. Comparing with the previous releases, this version is more focus on the reliability and usability. However, there is still an exciting new feature in this version, which is called “integration task” that can easily integrate ForeUI with other tools.
You may already know that you can invoke ForeUI via command line to generate image or HTML5 simulation. However, have you considered to use other tools to process the file(s) generated by ForeUI? The integration task is designed for that purpose. In the settings window, you will see a new tab named “Integration”, which allows you to manage the integration tasks.
You can click the “Add Task…” button to add a new integration task. Here you can specify the parameters for the task.
If you unselect the “Task is Enabled” option, the new task will be created but not take effect immediately, until you enable it later.
If you select the “Blocking Subsequent Tasks” option, the new task will block the workflow until the command is finished. This is useful when you want to execute a serial of tasks in order.
You will need to specify the condition that trigger the task. So far ForeUI supports these conditions:
- Before Saving Plot
- After Saving Plot
- Before Export HTML5
- After Export HTML5
You can input or browse the command to be executed, and you can use the variables below in the command:
- %plot%: the file path of the current editing plot.
- %file%: the path of the output file. For Before/After Saving Plot task, it will be the path of plot file to save; For Before/After Export HTML5 task, it will be the path of generated HTML file.
- %dir%: the path of the output directory. For Before/After Saving Plot task, it will be the path of directory to save plot file; For Before/After Export HTML5 task, it will be the path of directory that store the generated HTML files.
By making use of the integration task, you can invoke other tools to process the file generated by ForeUI.
Example: Auto Commit Plot File to SVN Repository
Some customers have asked for the version control feature. Now we can have it by integrating ForeUI with SVN. If you are not familiar with the usage of SVN, you can find some tutorials via google.
Assume that you want to commit the plot file to SVN repository everytime after you save the plot. First you should add your plot file into a project, and checkout your project to a local directory. Then please open the plot with ForeUI and go to the “Integration” tab in settings window. You can create an integration task like this:
That’s all, every time you save your plot, it will be committed to the SVN repository, so you will never lose your work, theoretically
If the plot file is not added into your SVN project, the command above will do nothing.
Remarks: the integration task feature is available for registered user only.
Other Enhancements and Bug Fixings:
Please check out this page to see the complete list of enhancements and fixed bugs in this version.
ForeUI 3.0 RC version is just released. As the last version before V3.0 official release, this version tend to be stable and offer much better experience. We don’t plan to add new feature in the official release of 3.0, instead we will include the completed document and have some bugs fixed.
We have made so many improvements in this version that I could not introduce them one by one. A full list of new features, enhancements and bug fixings can be found here. In this blog post, I would like to show you the most interesting part of this update.
From this version, ForeUI integrates with its new online resource store. You can download new element, library or plot file from store window, or from the store web site. You will be able to download new UI theme and ForeUI plugins from the same site in the future.
Clicking the category buttons on top can filter the items to be listed. You can also search the item by tag via the search box on top right corner. If you click the “Preview” button, the HTML 5 simulation of the item will be launched in your web browser, and you can see how it works. Clicking on the “Download” button will download the item and deploy it (if needed).
The store is just online and there is not so much resource inside yet. We will frequently add new resources into the store site.
Drag and Drop in Outline View
The outline view is significantly improved by supporting drag and drop elements directly. This is an easy way to embed element into container, or move embedded element from one container to another.
When you drag an element and try to drop it into a container, the tool-tip will tell you if it is allowed. So you will know what you can do and what you can’t, also you will know why. This feature is extremely useful when you want to manage a lot of overlapped elements.
Other New Stuffs
There are many other new things in this version. Don’t be surprised if you find something different than they used to be. Ususally they are changed in a better way, but if you think they are not, please feel free to tell us.
If you are interested in what we exactly did in this version, please check out the update history page.
Did you know that? ForeUI already supported adding live video (YouTube, Vimeo etc.) into plot from long time ago. Perhaps more accurately still, it is supported from the ForeUI version released on Sep 28th, 2009: V1.60! Thanks for the iFrame element available from that version, we can embed a web page into our plot. Embedding live video is another use case for this element.
What you need to do is to add an iFrame element into your page, adjust its size and location, then specify the correct URL for live video. How to find out the video URL? It depends on the video provider. If you want to add a video from Youtube, you can find the URL by clicking the “Share” button below the video player:
A panel will show up after you click the “Share” button, clicking the “Embed” button on it will show the code to embed video, the exact URL for live video is marked with red underline:
Please copy this URL to clipboard and paste it as the source URL of iFrame element. A ready-to-go demo is finished now:
Now run the simulation in web browser and you will see how it works:
If you want to embed video from Vimeo, the steps are quite similar, and you just need to find out the correct URL. You can click the “Share” button on top right corner of Vimeo video:
Then you will see a popup panel that includes the embed code on top right, the video URL is marked with red underline:
You can use this URL as the source URL of iFrame, and then you can see the result in simulation:
If you want to add live video from other providers, please check if they support embedding video as iframe. If they do, you can use the same way to embed their videos into your ForeUI plot.
Web API, JSON and JSONP
Nowadays many web service providers offer some APIs to access their data, which significantly simplify the development of client application for these web services. Usually the data format of the API will be XML, JSON or JSONP, which means you can request a URL on the Internet and then get a piece of XML or JSON data in the response, which contains the data you are interested in.
The difference between JSONP and JSON is that, JSONP will wrap the JSON data as a function call, while the function name is passed in from the request URL. Calling JSONP API is usually used to workaround the “The Same Origin Policy” and get JSON data from different servers. You can find a lot of information about these via Google.
“Get JSON Object” Action
From version 3.0, ForeUI supports a new action named “Get JSON Object”. This new action allows the HTML simulation to get JSON object from remote server via JSONP API, and store the JSON data to an Object type property (data types are introduced in previous post). That means ForeUI simulation can actually integrate with other web service via JSONP APIs, and we can even create some web apps with ForeUI!
When you add this action, you will be asked to provide some parameters, as shown below:
You will need to input the JSONP API here, and specify the name of property that will store the returned JSON data (as an object). There is an optional parameter that allows you to specify the custom event to trigger, when there is any error happened.
Now I will provide a simple example to show how to use this action.
Example: Location by IP
This is a simple, and working web app that allows you to get location information by giving the IP address. This example demostrates the usage of the new “Get JSON Object” action and the object type property. You will see how powerful ForeUI is
Since I could not directly query databse in ForeUI, I need to find the JSONP API to the job. Google always help but my favorite site for searching API is this one. There are hundreds JSONP APIs listed on the site. Please keep in mind that JSON API is different than JSONP API, if an API supports JSON format and does not support JSONP format, we just simply not able to use it in ForeUI.
After a few minutes work, I found my desired API: Prototype GeoIP API
I created the UI of web app very quickly with ForeUI. I set the plot size to 320×356, which can be perfectly viewed on smart mobile phone.
Than I handle the “Element Clicked” event for the “Search” button, and invoke “Get JSON Object” action with the parameters below:
In the URL field, I inserted the value of input text box as the IP address. The returned JSON data will be stored in property named “info”. If any error happened, the custom event “IP_Error” will be triggered. Remarks: do not use any spaces in the custom event’s name, please use underline instead.
The web app can almost work, if you input an IP address and click “Search” button in simulation, you can see the “info” property is filled with data (from properties view on toolbar).
The data stored in “info” property is a JSON object, using a JSON viewer can show its content with better format:
After figuring out how the data is organized, I defined some actions to update the result table, and show a message when error occurs:
That’s all, I exported the plot to HTML and uploaded to our website, you can try it below (an embedded iframe in this post), or you can try it in a separated window.