An Eclipse based GUI for Scilab. Yves Neisius December 13, 2007

Size: px
Start display at page:

Download "An Eclipse based GUI for Scilab. Yves Neisius December 13, 2007"

Transcription

1 An Eclipse based GUI for Scilab Yves Neisius December 13,

2 Contents Executive Summary 4 Section 1: Interface 5 Interface windows 5 History Current Status Prototype implementation Workspace Current Status Prototype implementation File browser Current Status Prototype implementation Console Current Status Prototype implementation Scilab interface for Java 8 Prototype implementation Plugin Activation 9 Prototype implementation Unimplemented features 9 Frontend Backend GEF to implement Scicos RCP to have a independent application Conclusions 12 Eclipse Scilab Java interface Split the project Java developers history, workspace, file browser Java command parser Scicos Section 2: Architecture 14 Plugin.xml 14 Plugin information Dependencies Extensions Perspective Help Source Code 15 GUI Editors and views Activator JavaSciWrapper Internal connection

3 Annex 19 Eclipse 19 3

4 Executive Summary The graphical user interface(gui) of Scilab is dated and unusable by modern standards. In order to show how a modern Scilab GUI should look, a Scilab plugin for Eclipse was implemented. This plugin has the look and feel of Eclipse and its main features are inspired by Matlab. As Eclipse has become a standard for GUI development, such plugins are readily accepted as GUI solutions. The implemented plugin shows some of the features and the standards that the Scilab GUI should integrate. The paper also details future work that can and should be done. Scilab needs a good interface in order to be more accessible to its users.this GUI includes, at the least, a console view, a workspace view, a history view, and a file browser. Eclipse is an effective way to implement the Scilab GUI. It can be used for all required Scilab features and can handle almost every SWT Widget. For instance, Scilab can directly adapt and use the Eclipse help engine without any coding and Scicos can be integrated into Eclipse. The Eclipse plugin described is fully functional on a basic level. In order to advance beyond this point, a proper connection between Scilab and Java must be documented and implemented. Scilab needs to be split up into a mathematical back-end and a user front-end. A Java/Eclipse developer should work on the GUI and be isolated from the technical back-end. In order for the front-end/back-end connection to work properly, a Scilab command parser needs to be written for Java. 4

5 Section 1: Interface Interface windows History The history keeps previously executed commands handy so the user can easily examine and reuse commands. Current Status Scilab has implemented a history, but its usage is limited: Scrolling through previous commands (with up/down arrows) is possible, but contextual scrolling showing only the commands that start with a specified string isn t. The Scilab history is accessed by typing gethistory(), the result of this function is displayed in the console window. This makes it difficult for a user to efficiently find previous commands. A history search is possible, but only the first occurrence of a match is shown. Obviously, the search function could be more powerful. Commands shown in history cannot be directly executed in the terminal, but instead must be copied and then pasted. Prototype implementation The history is implemented in a separate widget. This widget shows all the commands that where executed by the user. One part of the commands was executed in Scilab itself and the other part was executed in the Eclipse plugin. Those commands are automatically read when the plugin is started. The commands are shown in a list that can be scrolled by the user. When the user double clicks a command than it is pasted into the console. At this moment the user can modify the command before executing it. On every execution of a command the history widget is updated. The history can also be searched. The 5

6 search function selects all the commands that have any part matching the search pattern and sets the focus on the first occurrence. Non-matching commands are still visible in the history in order the show the context of the highlighted commands. The main problem with the current history implementation is the need to keep two different history files, one in Scilab and one in the GUI. This makes the management of the history difficult, but is currently unavoidable due to the fact that a Java application cannot add lines directly to the Scilab history. Workspace The workspace is the collection of user-defined variables. These variables always have a value and type, for instance integer, real, complex, matrix, character, string, etc... They can also have more exotic types such as function. The workspace window shows the user all the variables that are currently assigned in the workspace, along with their current value and type. Current Status The user must type who or whos in the Scilab console in order to see the current variables. Scilab returns variables to the console, butare not only the user variables but also internal variables used by Scilab: %pi, home, and Scilab for instance. These variables are not relevant to the user and clutter up the workspace list. In order to see the content of a variable its the name must be typed into the console. The size of a matrix is shown with the size() function. The type of a variable is shown with the type() function which returns the type code of the variable. All these functions must be executed to get the information about the current Scilab workspace. For every variable the different steps must be repeated. It is difficult for the user to get an overview of the current workspace. Prototype implementation A workspace widget was implemented in the plugin. This widget contains a table that shows the user-defined variables. Every variable s name, value, type, and size is shown. The type is shown in plain text. The size shows how many elements the variable has, e.g. if the variable is a matrix with a height of 2 and a width of 3 the size shows 2x3. For a single element variable the size is 1x1. It is also possible to hide workspace columns. This is done by checking the columns to show in the popup menu of the table.the SWT Table give Figure 1: Workspace Window also the possibility to move the columns and resize them, although by default every column is of the same width. In addition every columns can be sorted by ascending or descending order. The workspace is automatically updated after every command execution. At the moment, for matrices only the value in cell (1,1) is displayed. The value of functions is not shown because there is no format for doing so. It is possible to show distinct icons for the different types. currently there are no icons ready. This feature was disabled because The most important problem is to get the user variables. The only way to get the Scilab variables is by the who function. However this function returns all the variables: both system and user. At the moment the variables are filtered based on whether the variable was in the workspace when the plugin was run. The assumption is that these variables are system variables and can thus be hidden. This is however not very reliable because system variables may occur dynamically at times other than startup. For instance when a plot is shown two new variables are added to the workspace and thus appear in the window. 6

7 Another problem is an asynchronous crash of Xlib. This crash occurs always when two threads try to access the Xlib library, which is used to draw plots. When a plot command is executed a new window is opened that contains the diagram. The plot creates new Scilab variables that are used by Xlib. In parallel the workspace is updated after every command. It tries to read the variables that were created by the plot, which means that Xlib and the workspace are accessing those variables in parallel. This parallel access is not permitted by Xlib and will cause a crash of the Java Virtual Machine (JVM). The problem was solved by implementing a Java semaphore that prevents the workspace from updating during a plot command. The plot variables will only appear in the workspace window after the next command is entered. File browser Scilab has the ability to access and navigate the O/S file system. A file browser allows graphically presents the file system structure so users can find files, scripts, images, etc. Current Status In order to run such a script file the user need to type exec("/foo/bar.sce"), where /foo/bar/script.sce is the path and file name. Common unix file system commands such as ls and cd are available, e.g. cd /foo/bar/, where /foo/bar/ is the directory path. This approach is impractical as the user must always type the complete file path. Prototype implementation A file browser widget was implemented in the plugin. This widget is a SWT Tree which shows a classic file system tree view. The folders can be expanded or collapsed. When the user has found a file, it can be selected which will send the command exec("/foo/bar/script.sce") with the absolute file path to the console. If he double click s on the file the command cd /foo/bar/ is sent to the console. This lets the user execute a script or change the directory of Scilab without having to type the directory path. While a user can change the tree s root directory for ease of use, this change is not done automatically when a cd /foo/bar/ command is executed from the console. Console The console is the central interface between the user and a mathematical program. The user can type commands in the console and execute them. If desired, the console can show the results of the command. Current Status The user needs to know all the commands with the exact spelling in order to execute them. Mathematical functions can be written. However they are written in normal text format which makes it difficult to read them. One single commands can be composed of different functions overy many lines. This sometimes leads to lenghty commands that do not fit well in the window, which makes reading difficult. The console is blocked when Scicos runs. As described above, the up/down arrow keys can be used to cycle though the history but contextual scrolling is impossible. In the event that multiple identical commands have been executed in a row, each instance of the command must be cycled through. 7

8 Prototype implementation The prototype console only has some of the original features. This is due to the complexity and the number of functions that the console possesses, which are not easily interfaced externally, i.e. from a java plugin. A proper implementation of all the Scilab console functions must wait for a better Java-Scilab link. Commands are typed in the lower text field of the console and the return key executes them. The executed commands are shown along with thir results in the upper text field of the console. Commands are shown in blue, results in black, and errors in red. The formatting of the results is similar to the classic Scilab console s formatting. The upper text field of the console can scroll to view results that have been pushed off the screen. Every command that is executed is added to the history and any changes made to the Scilab variables are shown in the workspace. As before, the up/down arrow keys are used to cycle though the history but now contextual scrolling is implemented. If a string is first entered by the user before using the arrows, only the history command that begin with this string are shown. In the event that multiple identical commands have been executed in a row, the console returns only one instance of the identical commands before cycling to the next command. The normal way to execute commands is with the string("command") function. But this function does not work for every command. For instance an assignment will not work in the string("command") function. The problematic commands are assignments, clears, executions, formatting commands, mulit lines commands, scripts, plots, Scicos and navigational commands. Scilab interface for Java The interface to the Scilab engine is the most important part of the Eclipse plugin, it makes the connection between the plugin and the Scilab engine. Prototype implementation At the moment the the interface is based on shared variables between Scilab and Java. Those variables can be uses in Java and in Scilab. They can be modified by Scilab command like gethistory() and 8

9 they can be modified in Java. In order to get a result from the Scilab engine it needs to be converted into string and assigned to a shared variable. This can be done with the following command shared variable = string("command"). A wrapper class was written that manages all the calls to the Scilab engine. This wrapper class is fully synchronized and should prevent concurrent access to the Scilab engine. However the problem of Scilab crashes is still not totally solved. A problem with the current interface is the leak of concurrence management. If two current requests are send to the Scilab engine it may block or crash. A crash in the Scilab engine will result in an Eclipse crash. There is no possibility the recover the plugin or restart the Scilab engine. This makes it very difficult to debug the plugin. Plugin Activation A Eclipse perspective is a group of views that form an application. All the views that are implemented in this plugin are grouped in the Scilab perspective. When a perspective is started it opens the views and places them on there positions. Prototype implementation At the moment the history is placed at the left side of the console and the workspace as well as the file browser are placed at the right side of the console. This may not be the optimal solution but the placement can be easily changed by the user due to the build in feature of Eclipse. This user made change will be consistent over time. When the Scilab perspective is started it needs also to start the console. As the console is an editor this causes problems. The editor are not meant to be opened at the start up of a perspective. This design chose of Eclipse can be explained with the fact that Eclipse normally works with projects. A project is generally composed of a multitude of files, like a Java project. Those files are opened by the user. However the console is not started by the user. This task is accomplished by the views at the moment of data initialization. This is due to the possibility that a view can be opened without a perspective. However any Scilab view will always need the console. The design of a plugin that is composed of multiple components makes it necessary to have a central object that manages the start up and the closing of the plugin. This object is called Activator. However the current access on the Activator generates may concurrency problems. Those problems were solved with the synchronization of the methods. Furthermore the request for a Scilab connection of the different views is not treated directly but with a certain delay. This delay can be seen when the plugin starts the data are only show a few seconds after the views are shown. This delay is the time that is needed by the Scilab engine to load it libraries and treat the initialization requests of the history and the workspace. The results are saved in Java data structures (Vectors) in order to reduce the access time to the data by the views. This access time is critical as the Eclipse engine does not tolerate views that are blocked.this blocking would be interpreted by the Eclipse engine as a crash due to internal timeouts. Which would lead to an partially loaded plugin that is not usable. In order to solve this problem the widgets were decoupling the Scilab engine. The widgets are started independently and in parallel the Scilab initializations. A fourth problem is the complete blocking of the Scilab engine at the time of initialization which may occur randomly. This leads to a complete blocking of the plugin. Unimplemented features Frontend The undo function 9

10 The undo function is well-known in the computing world, but it poses some special problems in technical computing. Normally, an undo function would save the state or the most recent modifications into RAM after every action. However, this is unworkable as Scilab is capable of having incredibly large objects in memory, such as uncompressed image files or large 1,000,000x1,000,000 matrices. Moreover, what would happen in a loop or script where there are thousands, if not tens of thousands or even millions, of commands? Clearly, it simply is impractical to save the state at the end of every command. It is unclear whether this function is necessary as the history would normally allow a user to completely recreate any state as long as the initial variables were the same. Still, we can imagine scenarios where an undo function would come in handy, such as accidentally clearing the workspace when only one variable was intended to be cleared, or reassigning a matrix that was computationally expensive to create. We determined that the best way to implement an undo function would be by saving the workspace infrequently, every minutes, depending on memory requirements, and then timestamping all commands so the user could in effect roll back the clock to an earlier state by choosing a starting point and then redoing all the commands up to the desired moment. In most development circumstances, minutes of user time will be no more than a few seconds of computer time so the user will not have to wait unreasonable amounts of time. This approach also has some problems, as it provides no way of insuring that data from an outside source is the same data as before. For instance, if a script involved a call to a data acquisition board, then obviously the data would not be the same as the first time. However, in spite of these problems, we think this approach is still the best, and is certainly one of the easiest to implement rapidly and reliably. auto completion / auto extension Auto completion is one of the most interesting features that might be implemented. Eclipse has an auto completion system integrated. This system could be used to realize a Scilab auto completion based on the "Ctrl + Space" keys. In order to implement this an analyzes of the auto completion system of Eclipse must be done. Furthermore a list of command must be created and inserted in the auto completion system of Eclipse. command highlighting Experimented users of Scilab mostly use an Editor to write the Scilab scripts. Such an editor could easily be implemented in Eclipse. The command highlighting is an integrates part of the Eclipse Editors. This highlighting can also be used on the commands typed in the console and in the history. The Eclipse customer editor system needs to be explored. pretty print The pretty print is used to show the Scilab functions in a more adapted way. It should be possible to show the fractions with a fraction bar as well as the exponents as a small number above the concerned number. There are also other mathematical writings that might be interesting. The goal is not to present the function in a absolute correct mathematical form but to help the user to write functions. The system can be implemented as a separate widget. This widget will contain a field where the user can write the Scilab command. When he has finished he hits a button and the well formatted formula is shown in an other field of that widget. If the command is correct the user can transfer it to the console or eventually to the editor. Backend user variables In order to be able to show only the user variables a Scilab function needs to be created that returns them. At the moment this is done by the who function. However this function returns all the variables including the Scilab variables. It is possible to filter some of them by their names but there might dynamically occur new Scilab variables. So a who_user function is needed that only returns the variables that where assigned by the user. Java history access 10

11 It must be possible for a GUI developer to add new elements to the Scilab history. The commands that are executed in Java are not inserted into the Scilab history at the moment. So a function needs to be created that gives the GUI developer the possibility to insert strings into the Scilab history. Furthermore a system needs to be setup that decibels how the timestamping in the Scilab history functions works. The developer needs to know how the timestamp must look like and when and how he must insert them. For instance the timestamps are inserted at the start up and the closing of the Scilab plugin. Furthermore they would contain the same information then the normal timestamps with in addition the string "plugin". Plot and Scicos An other important point is the plot and Scicos execution. At the moment the plot is done in a separate thread and Scicos does not work at all. Furthermore this is only possible in the console not in scripts. It is necessary that the plot and Scicos can be executed in the same way than normal commands. The event loops need to be automatically managed by the Scilab engine. The execution of commands At the moment the result of the commands are returned over shared variables and the string() function. However this function has many exceptions that do not work. So either those exceptions must be integrated into the string() function or at least they must be well documented. This documentation would not only include the description of the problem but also a solution to it. An other possibility would be to return directly the normal Scilab value after execution. With this solution special attention needs the be brought to the return format. This must be a standard format for all the Scilab function. The simplest would be a two dimensional array of strings. Plugin stability The stability of the plugin was already much improved by implementing a central wrapper class that is fully synchronized. This class could become a part of the Scilab to Java interface. The Scilab consortium could develop this idea in more detail and test some functions. The idea would be to write a tutorial for developers who wants to add there own functions in the wrapper class. The main goal of this tutorial would be to show how new methods need to be implemented in order to achieve the maximal stability. At the moment the problems can not be properly located. Solving them could involve changing the plugin source code or the Scilab code. As Eclipse is heavily multi threaded there might be problems due to the leak of thread control in the Scilab engine. In the end some way must be taught up that will allow the Java developer to know if the problem comes from the Scilab side or the Eclipse side. This could be achieved by a log file system. Those log files must show in what state the Scilab engine is and how it got there. Additionally the log files must be well documented and comprehensible for a foreign developer. command filtering Unfortunately the commands need to filtered in order to treat them right. This is due to the fact that no standard way exists to execute the commands. If this problem is solved there will be no need for command filtering. But until then the filtering is necessary. The filter must allow the developer to extract certain commands out of scripts and allow the categorization of commands. So that the every command an specific way of execution can be implemented. GEF to implement Scicos GEF is the Graphical Editing Framework for Eclipse. It is closely related to Eclipse. Every major version of Eclipse involves also a new version of GEF. It is a stable framework that is downward compatible to older versions. It can be used to show graphs. This makes it interesting in order to implement Scicos. GEF is mature and many open source examples exists. A good example for the use of GEF is an open source project is BrainBox. BrainBox is implemented as a RCP and its use is similar to Scicos. It would be a good starting point for anyone who wants to pursue this track. GEF has some interesting build in features. The edges of the graph can be routed with different algorithms that are easy to implement in Eclipse. Such a widget could be run in a parallel tab with the console and an editor. The main programming idea of GEF is that every object has its own class that describes its graphical appearance. Furthermore the classes contain the data that are linked to that object. Those data can 11

12 be functions or constants or code snippets. The different objects are linked with edges. Those links are saved in a graph that contains the objects. RCP to have a independent application The Rich Client Platform concept is one of the big advantages of Eclipse. It gives the developer the possibility to create a stand alone application from any Eclipse plugin. Eclipse itself is a RCP application. An RCP application is composed a platform and some plugins. The platform is able to run the plugins and the plugins define the behavior of the application. So Eclipse is defined by a set of plugins. The Scilab plugin needs some Eclipse plugins to work. However it only needs a subset of the Eclipse plugins. In a RCP application only the plugins that are really needed are incorporated in the application. This makes an RCP application smaller in size and faster in loading as not all the plugins need to be loaded. Furthermore the menus and toolbars can be customized in a stronger way than it is possible for a plugin. Eclipse build in ability to create RCP applications needs some additional configurations. For instance the required plugins must be identified. The most delicate part in the creation of a Scilab RCP will be the connection to the Scilab engine. Conclusions Eclipse The Eclipse GUI is nicely designed and gives the user the freedom to place the features as he likes. Every features has its own widget. The user can decided which widget to show. Eclipse is a standard for GUIs development. It is flexible, stable, and its use is intuitive. The Eclipse architecture makes it easy to add new features. Almost every SWT application can be fitted to work under Eclipse. The modification to be done are well documented. Further Eclipse puts abstract classes to the disposal of the developers. Those classes implement already the default behavior. Which makes it easy to get started. The plugin can be run as part of a normal Eclipse or a minimal Eclipse of about 35 megabyte. Furthermore the plugin can be part of a so called Rich Client Platform(RCP) application. A RCP application is a standalone application that contains only the Eclipse elements that are required by the plugin. An RCP can be further customized and is smaller than a copy of Eclipse with a plugin. In the end the Eclipse project is base on well known design patterns and good programming practices. This is very important especially for the GUI domain. The developers can create a GUI with the look and feel of Eclipse. This is interesting as Eclipse is used by many people in various domains. Java, C, C++ development, Latex editor, download manager... Many Eclipse users check first if some free Eclipse plugin exists for there needs. Scilab Java interface Modern GUI are partly developed by volunteers. This is even more the case for open source projects. In order to be attractive for those GUI developers a good API is needed. Those developers do not worry about the mathematical engine. They use Scilab as a library. So it is very important to provide them a good API. The Scilab programmers are the only ones that can do this. As they are the only ones that have enough knowledge about Scilab. This interface need to be stable and simple to use. Furthermore it needs to be well documented. The way how and which Scilab commands can be executed needs to be discussed. Split the project The Scilab GUI is too important to be developed as an afterthought to the rest of the package. The developers most interested in mathematical coding are usually those least interested in GUI programing. The development of a GUI is time consuming and may go in a wrong direction. In order not to burden this part to the Scilab programmers who need to work on the mathematical side and on the interface side would it be the best to split the project. The GUI part of Scilab can be furnished by independent Java and/or Eclipse programmers if a good Java interface exists. This would lead to a fast development of interfaces in different working domains(toolkits). 12

13 Java developers The Java developers know the modern GUI standards. This knowledge leads to intuitive and commonly know designs. The Scilab consortium is to familiar with the current GUI. This leads to an improved design of the current GUI. However if Scilab wants to be competitive then it will need a whole new interface. This interface can only be furnished by programmers that have no restrictions in mind. history, workspace, file browser This features are standard features of the competitor. Furthermore they give the user a much easier access to Scilab. The immersion into the application is bigger. The user has not the feeling to be lead alone with the console. Java command parser In order to split Scilab in a mathematical and a GUI part the commands need already to be parsed in the Java application. This is due to the fact that the graphical commands, like printf, disp are mangled with the mathematical commands. However there is no need to bother the mathematical engine with the graphical commands. Furthermore the GUI can be made more efficient with a command parser. This parser would be the basis for auto completion and pretty print of commands. Furthermore such a parser would permit to filter commands that need special attention, like plots. Scicos For Eclipse some modeling toolkits exists. Those toolkits where developed in order show graphs as they are used in model driven programming. Those toolkits could be used to implement a Scicos visualization. 13

14 Section 2: Architecture The architecture of this prototype is very clear this is due to the following facts. First Eclipse is a framework and in opposition to a simple library it demands to respect certain architectural aspects. Second this prototype does not only intend to show how a modern GUI for Scilab should look like, but it also shows how a Eclipse plugin should look like. Eclipse is an open source project that can fit for many different purposes. Mainly the development of GUI s is simplified by this framework. This simplification is achieved by build in features and by good programming practices. Those good practices are illustrated in examples that can be found on the Eclipse homepage. Plugin.xml An Eclipse plugin is not only defined by its source code, it needs also configuration files. Every Eclipse plugin has a plugin.xml configuration file in its root directory. This is the first file that is read when a plugin is loaded into Eclipse. It is the central point that is used by Eclipse to integrate the different views, editors, help content, perspectives... Plugin information First of all the plugin.xml contains the xml encoding and the version of Eclipse that it needs. Than the name, the id and the version of the plugin follows. The id is a unique string that identifies the plugin. It can have a hierarchical structure similar to a domain name. Every plugin needs to specify an Activator class. The activator is the class that is used when the plugin starts. Dependencies An other important information that can be found in the this file is the requirements. Eclipse is a combination of RCP plugins. Between those plugins some dependencies may occur. Those dependencies are specified in the required section. This can be compared to the build path of a normal Java application. In fact it is important not to use the build path for a plugin because the build path will only work on the local machine. Extensions As Eclipse is the framework the widgets that are written needs to hook onto the platform. Those hook points are called extensions points. The most important extension points are the views and the editors. The views are defined by there name, id and the path to the class that implements the view. Furthermore a category may be specified to indicate where the link to the view will be shown. In Eclipse the views can be started under Window->showView->other. There all the views that are available can be found under there respective categories. The Editors are defined similar to the views. They extend editors but they do not have a category because they can not be directly opened by a user. The editors are meant to be opens with a file. As in our case there are no files the extensions attribute is set to "". This means that no file is opened with this editor. Perspective The primary way to start a plugin is to switch to its perspective. The perspective will open all the views that form the Scilab plugin. The perspectives can be found under Window->perspectives->other. A perspective is defined by its name, id and the perspective class. 14

15 Help One feature of Eclipse that needs not source code at all is the help. New help content can be added without programming it. The content needs to be written in HTML. The place where the different HTML pages are inserted in the help is defined in a second xml file. However this file needs to be specified in the plugin.xml under the extension point org.eclipse.help.toc. The content that is added to the help will be shown in the structure of the Eclipse help. It can be searched by the help search engine. This engine will search automatically the content of all the help files that are inserted. As you can see the main element of a Eclipse plugin is the plugin.xml. It defines how the source code will interact with the platform. The plugin.xml must be respected. Everything that can be defined in this file should be defined here. Eclipse programming is a combination of source code and configuration files. Source Code Even if the plugin.xml is the central object to manage the plugin the biggest part of the work is the Java source code. But also here Eclipse gives a frame that needs to be respected. The requirements of a plugin are divides in the following parts. The structure of the plugin. The implementation of Eclipse interfaces and abstract classes. The respect of good programming practices. The following diagram shows the structure of the Scilab plugin. However this structure can be used as a template for any Eclipse plugin. 15

16 The greed part contains the actual GUI which consists of SWT source code with its connection to Eclipse. The red part contains the plugins behavior on start up. The blue part contains the connection to the Scilab engine. The two black boxes contain the connection between the Scilab engine and the GUI. GUI Editors and views The Eclipse GUI is composed of physically independent part. As of every GUI the upper space contains the menu and the toolbar. The main space however is divided among different widgets. Those widgets can be moved, resized, put into a separate windows, opened and closed separately. There exist two categories of widgets: the editors and the views. The editor is the center of and Eclipse plugin. It contains some text that is edited by the user. Historically the editor was used to edit Java source code files. This is why today the editors are opened in connection with a file type. The views are used to put additional features at the disposal of the user. For instance a package manager that shows all the files in a Java project. Or a outline view that show the methods of a Java class. The views can be opened by the user. SWT The different widget can be developed as normal SWT applications. For every part of the GUI a separate widget class needs to be implemented. It would for instance technically be possible to implement the history and the workspace in a single class. However this would have for consequence that Eclipse could not manage them separately and the user must always open the two features. In the diagram the upper four classes represent the SWT implementation of the console, file browser, history and workspace. Connection with Eclipse The Widgets need to be instantiated and initialized by some mean. This is done by Eclipse with the help of the plugin.xml. However the plugin.xml does not interact directly with the SWT widgets. Eclipse requires classes that implements the IEditorPart interface for an editor or the IViewPart interface for a view. In order to make it simpler to implement those interfaces Eclipse puts abstract classes at the disposal of the developers. The EditorPart and the ViewPart are those abstract classes. They already implement the interfaces to a certain extend. The user still need to furnish some implementation but the new requests are simpler to understand. The EditorPart and the ViewPart implement the default behavior of the IEditorPart and the IViewPart. For instance the IViewPart interface needs the following methods to be implemented getviewsite() 16

17 init(viewsite) init(viewsite, IMemento) savestate(imemento) The abstract ViewPart however only needs createpartcontrol(composit) It creates the widget and sets it into the Composit frame, which explains why the Widgets need to extend Composit. setfocus() It defines what happens when the focus is given to the widget. dispose() It defines what happens when the widget is closed. The in order to implement the interface a deep understanding of the Eclipse engine is required. As for the abstract class the general understanding of GUIs is sufficient. If a developer wants to implement those interface on its own he has to make sure he uses the Eclipse programming practices and respects all its needs. The console is an editor because it is the central part of the plugin. An editor is an Eclipse definition of a SWT widget that is meant to edit files. This leads to save and load methods that are needed in addition to a view. However those methods are not used in Scilab as the Scilab console has not direct source files that need to be edited. This makes an EditorInput necessary. A EditorInput is the description of an Input else than a file. The most impotent part in such an input is the equal method. This method is used to check if an editor has the same input than an other editor. This check is needed when an editor is requested. For instance when the history wants to send a command to the console it will need the instance of the console. The instances of all the editors and views are managed by the Eclipse engine. Eclipse will search all the already opened editors in order to find an instance of the Console editor. If it cannot find any open instance it will open a new one. However if it finds one it will check the inputs of the already opened instances. If its input is the same as in the requested it will pass this editor back. In our case the equal method of the EditorInput checks only if the inputs are of the same type. This means that all the requests for a console will either create a new console or return the already opened console. This way Eclipse makes sure to have only opened each file once. Activator An other big issue of a Eclipse plugin is the start. As already said a plugin is composed of different views and editor which work independently from each other. So there is no central object that exists during the whole life cycle of the plugin. This is why Eclipse has an AbstractUIPlugin class. It is implemented by a class that is usually called Activator. Its methods are start(), stop(), and getdefault(). They are executed then the plugin starts, stops and when the Activator is requested. In our case however the Activator is more complex. This is due to the fact that we work with Scilab. Scilab is interfaced to Java via the JNI interface. Those so called native calls use the native Scilab engine which is written in C. When a first command is send to the Scilab engine it needs to be initialized first. This means that the Scilab libraries need to be read from the hard disk and loaded into the memory. This takes a considerable among of time. This takes even more time when it happens in parallel with the start of the Eclipse plugin. This does not only slow down the start but it can also crash the plugin. If a view needs to be initialized with Scilab content at the start of the plugin. For instance the Scilab history need to be initialized. It will be blocked until the Scilab call has finished. However the Eclipse engine will not tolerate a blocked 17

18 view and after a certain timeout it will try to stop this action. This leads to a undefined state of the Scilab interface and the Eclipse engine. Eclipse many load partially or block totally. The start up of Eclipse is a delicate time. The views and editors must not block at this time. The blocking can occur due the native code access but also due to access onto functions that are not jet loaded. For instance the getstatelocation() function returns the path to the working directory of he plugin. If this function is executed in the constructor of the Activator it might fail as the required information does not yet exists. This failure might block the widgets. JavaSciWrapper A major problem that may occur is the parallel access to the Scilab engine. As every widget has its own thread concurrent access is likely to occur. The initial Java to Scilab interface did not manage concurrent access. Nor the Java code nor the Scilab code had a way to manage such situations. For instance when the history and the workspace were updated the Scilab functions were accessed in parallel. In order to prevent those situations some implementation choices where taken. First of all a wrapper class was created. This class groups all the possible calls from the plugin to the Scilab engine. This prevents calls from multiple treads as every widget has its own. The history calls the loadhistory and the gethistory, the console calls the exec methods and the workspace loadsciworkspace and the getworkspace methods. Those are also the most important methods of the Wrapper. All of them are synchronized to prevent concurrent access. Those methods executes all the Scilab commands that are necessary for the different operations. The workspace and history methods are split in two parts. The actual execution and the getter to access the results. This is done to prevent the widgets from waiting until the call to the Scilab engine is finished. The actual execution is done in the load methods where the results are saved.the getter only returns the saved values. This way it is easy to share the results. For instance the history is used by the history widget and also by the console when the up and down arrows are pressed. The detailed implementation of the of those methods is a result of the Scilab interface. The current interface is very limited. The default way to execute a Scilab command for Java is to have a shared variable between Java and Scilab. With a Scilab command shared variable = string("command") the result of the of the command is passed to the shared variable. Through the shared variable the result can be accessed. This way does unfortunately not work for all the commands. Assignments, multilined functions, scripts, clear variables, plots, formatting functions and file system navigation does not work. There are certainly other exceptions. Those exceptions must be treated in unique ways. For instance the multilined commands are temporarily saved in a file and executed like a normal script. The plot function is even more complicated. It leaded to the implementation of a new plot class. The plot runs in a separate thread in order to start the GTK plot. However the coexistence of GTK and Java is not trivial. The GTK may only be controlled by a single thread. This means that when a plot was launched once it need to be controlled by the same thread as long as the Scilab libraries run. Else a asynchronous Xlib error may occur. An other consequence of the fact that not two different threads may access the Xlib is an error produced by the workspace. This error occurs during the update after a plot function is called. As the plot creates variables and the workspace accesses those variables two threads access the plot variables and the Xlib crashes. At the moment the error is solved by a Java semaphore. This semaphore prevents the workspace to be updated while a plot is active. This error shows the limits of the concurrency control only based on the Java level. The Java developer should able to concentrate only on the GUI. 18

19 Internal connection The last part of the architecture is the connections between the Activator and the widgets and the JavaSciWrapper and the widgets. This connection uses listeners. The WrapperReciever interface is used to connect the Activator with the workspace, the history and the console at the time of start up of the plugin. As already described the start up of the plugin is a very delicate time. The Widgets must not block. This is achieved by the recievewrapper mechanism. The Widgets executes the getwrapper method of the Activator during there creation. This method will check if a wrapper already exists. If it is the case the wrapper is directly returned by executing the recievewrapper method of the calling widget. However if the wrapper does not exist yet the requesting widget is saved in a Vector and the JavaSciWrapper is created in a separate thread. This separate thread prevents the method from blocking. Furthermore will it create the wrapper and execute the loadhistory and the loadsciworksapce methods. Those methods need the Scilab engine and will take some time. Then the thread has finished the recievewrapper methods of the widget that are saved in the Vector are executed. They will than take the data from the wrapper to initialized them self s. Furthermore they add them self as listener to the wrapper where they are stored in the Observer Vector. This leads to the connection between the wrapper and widgets. Always when the exec method of the wrapper is executed the history and the workspace are updated. This is done by executing the update methods of all the objects in the Observer Vector. Annex Eclipse Eclipse is an IDE that was design to help Java developers to write their source code. It possesses many interesting and useful features: the package browser, the outline, the auto compile, the auto correct and the debugger only to cite the most important. Furthermore the whole graphical environment is nicely designed and gives the user the freedom to place the features as he likes. The user can decided with widget to show. However now Eclipse is much more than only a Java IDE. Eclipse is an open-source, platform-independent software framework, written primarily in Java, for delivering what the project calls "rich-client applications", as opposed to "thin client" browser-based applications. So far this framework has typically been used to develop Integrated Development Environ- 19

20 ments (IDEs), such as the Java IDE called Java Development Toolkit (JDT) and compiler (ECJ) that comes as part of Eclipse (and which are also used to develop Eclipse itself). However, it can be used for other types of client application as well. Eclipse is also a community of users, constantly extending the covered application areas. An example is the recently created Eclipse Modeling Project, covering most areas of Model Driven Engineering. Eclipse was originally developed by IBM as the successor to its VisualAge family of tools. It is now managed by the Eclipse Foundation, an independent not-for-profit consortium of software industry vendors. Many software tool vendors have embraced Eclipse as a future framework for their IDEs. The basis for Eclipse is the Rich Client Platform (RCP). The following components constitute the rich client platform: * Core platform - boot Eclipse, run plug-ins * OSGi - a standard bundling framework * the Standard Widget Toolkit (SWT) - a portable widget toolkit * JFace - file buffers, text handling, text editors * The Eclipse Workbench - views, editors, perspectives, wizards Eclipse s widgets are implemented by a widget toolkit for Java called SWT, unlike most Java applications, which use the Java standard Abstract Window Toolkit (AWT) or Swing. Eclipse s user interface also leverages an intermediate GUI layer called JFace, which simplifies the construction of applications based on SWT. Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the rich client platform, in contrast to some other applications where functionality is typically hard coded. This plug-in mechanism is a lightweight software componentry framework. In addition to allowing Eclipse to be extended using other programming languages such as C and Python, the plug-in framework allows Eclipse to work with typesetting languages like L A TEX, networking applications such as telnet, and database management systems. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management. Java and CVS support is provided in the Eclipse SDK. It does not have to be used solely to support other programming languages. The Eclipse SDK includes the Eclipse Java Development Tools, offering an IDE with a built-in incremental Java compiler and a full model of the Java source files. This allows for advanced refactoring techniques and code analysis. The IDE also makes use of a workspace, in this case a set of metadata over a flat filespace allowing external file modifications as long as the corresponding workspace "resource" is refreshed afterwards. Taken from Wikipedia. 20

Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5.

Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5. 1 2 3 4 Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5. It replaces the previous tools Database Manager GUI and SQL Studio from SAP MaxDB version 7.7 onwards

More information

Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide

Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide Open Crystal Reports From the Windows Start menu choose Programs and then Crystal Reports. Creating a Blank Report Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick

More information

Operational Decision Manager Worklight Integration

Operational Decision Manager Worklight Integration Copyright IBM Corporation 2013 All rights reserved IBM Operational Decision Manager V8.5 Lab exercise Operational Decision Manager Worklight Integration Integrate dynamic business rules into a Worklight

More information

Web Dashboard User Guide

Web Dashboard User Guide Web Dashboard User Guide Version 10.2 The software supplied with this document is the property of RadView Software and is furnished under a licensing agreement. Neither the software nor this document may

More information

HelpSystems Web Server User Guide

HelpSystems Web Server User Guide HelpSystems Web Server User Guide Copyright Copyright HelpSystems, LLC. Robot is a division of HelpSystems. HelpSystems Web Server, OPAL, OPerator Assistance Language, Robot ALERT, Robot AUTOTUNE, Robot

More information

Jet Data Manager 2012 User Guide

Jet Data Manager 2012 User Guide Jet Data Manager 2012 User Guide Welcome This documentation provides descriptions of the concepts and features of the Jet Data Manager and how to use with them. With the Jet Data Manager you can transform

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

Eclipse for Smalltalkers

Eclipse for Smalltalkers Eclipse for Smalltalkers What a difference a year makes! Eric Clayberg Sr. Vice President of Product Development Instantiations, Inc. July 14, 2003 clayberg@instantiations.com http://www.instantiations.com

More information

Before you can use the Duke Ambient environment to start working on your projects or

Before you can use the Duke Ambient environment to start working on your projects or Using Ambient by Duke Curious 2004 preparing the environment Before you can use the Duke Ambient environment to start working on your projects or labs, you need to make sure that all configuration settings

More information

Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab

Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab Yocto Project Developer Day San Francisco, 2013 Jessica Zhang Introduction Welcome to the Yocto Project Eclipse plug-in

More information

Legal Notes. Regarding Trademarks. 2012 KYOCERA Document Solutions Inc.

Legal Notes. Regarding Trademarks. 2012 KYOCERA Document Solutions Inc. Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable for any problems arising from

More information

Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide

Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72 User Guide Contents 1 Introduction... 4 2 Requirements... 5 3 Important Note for Customers Upgrading... 5 4 Installing the Web Reports

More information

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided

More information

Microsoft Access Basics

Microsoft Access Basics Microsoft Access Basics 2006 ipic Development Group, LLC Authored by James D Ballotti Microsoft, Access, Excel, Word, and Office are registered trademarks of the Microsoft Corporation Version 1 - Revision

More information

SyncTool for InterSystems Caché and Ensemble.

SyncTool for InterSystems Caché and Ensemble. SyncTool for InterSystems Caché and Ensemble. Table of contents Introduction...4 Definitions...4 System requirements...4 Installation...5 How to use SyncTool...5 Configuration...5 Example for Group objects

More information

Java Application Development using Eclipse. Jezz Kelway kelwayj@uk.ibm.com Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom

Java Application Development using Eclipse. Jezz Kelway kelwayj@uk.ibm.com Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom 8358 Java Application Development using Eclipse Jezz Kelway kelwayj@uk.ibm.com Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom Abstract Learn how to use the powerful features

More information

Desktop, Web and Mobile Testing Tutorials

Desktop, Web and Mobile Testing Tutorials Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major

More information

Finding and Opening Documents

Finding and Opening Documents In this chapter Learn how to get around in the Open File dialog box. See how to navigate through drives and folders and display the files in other folders. Learn how to search for a file when you can t

More information

WebSphere Business Monitor V7.0 Business space dashboards

WebSphere Business Monitor V7.0 Business space dashboards Copyright IBM Corporation 2010 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 7.0 LAB EXERCISE WebSphere Business Monitor V7.0 What this exercise is about... 2 Lab requirements... 2 What you should

More information

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005... 1

More information

Network Probe User Guide

Network Probe User Guide Network Probe User Guide Network Probe User Guide Table of Contents 1. Introduction...1 2. Installation...2 Windows installation...2 Linux installation...3 Mac installation...4 License key...5 Deployment...5

More information

For Introduction to Java Programming, 5E By Y. Daniel Liang

For Introduction to Java Programming, 5E By Y. Daniel Liang Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,

More information

ORACLE BUSINESS INTELLIGENCE WORKSHOP

ORACLE BUSINESS INTELLIGENCE WORKSHOP ORACLE BUSINESS INTELLIGENCE WORKSHOP Creating Interactive Dashboards and Using Oracle Business Intelligence Answers Purpose This tutorial shows you how to build, format, and customize Oracle Business

More information

DataPA OpenAnalytics End User Training

DataPA OpenAnalytics End User Training DataPA OpenAnalytics End User Training DataPA End User Training Lesson 1 Course Overview DataPA Chapter 1 Course Overview Introduction This course covers the skills required to use DataPA OpenAnalytics

More information

FastTrack Schedule 10. Tutorials Manual. Copyright 2010, AEC Software, Inc. All rights reserved.

FastTrack Schedule 10. Tutorials Manual. Copyright 2010, AEC Software, Inc. All rights reserved. FastTrack Schedule 10 Tutorials Manual FastTrack Schedule Documentation Version 10.0.0 by Carol S. Williamson AEC Software, Inc. With FastTrack Schedule 10, the new version of the award-winning project

More information

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the SAI reports... 3 Running, Copying and Pasting reports... 4 Creating and linking a report... 5 Auto e-mailing reports...

More information

Decision Support AITS University Administration. Web Intelligence Rich Client 4.1 User Guide

Decision Support AITS University Administration. Web Intelligence Rich Client 4.1 User Guide Decision Support AITS University Administration Web Intelligence Rich Client 4.1 User Guide 2 P age Web Intelligence 4.1 User Guide Web Intelligence 4.1 User Guide Contents Getting Started in Web Intelligence

More information

Load testing with. WAPT Cloud. Quick Start Guide

Load testing with. WAPT Cloud. Quick Start Guide Load testing with WAPT Cloud Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. 2007-2015 SoftLogica

More information

Software Development Kit

Software Development Kit Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice

More information

Enterprise Service Bus

Enterprise Service Bus We tested: Talend ESB 5.2.1 Enterprise Service Bus Dr. Götz Güttich Talend Enterprise Service Bus 5.2.1 is an open source, modular solution that allows enterprises to integrate existing or new applications

More information

Access 2010: The Navigation Pane

Access 2010: The Navigation Pane Access 2010: The Navigation Pane Table of Contents OVERVIEW... 1 BEFORE YOU BEGIN... 2 ADJUSTING THE NAVIGATION PANE... 3 USING DATABASE OBJECTS... 3 CUSTOMIZE THE NAVIGATION PANE... 3 DISPLAY AND SORT

More information

Attix5 Pro Server Edition

Attix5 Pro Server Edition Attix5 Pro Server Edition V7.0.2 User Manual for Mac OS X Your guide to protecting data with Attix5 Pro Server Edition. Copyright notice and proprietary information All rights reserved. Attix5, 2013 Trademarks

More information

TIPS & TRICKS JOHN STEVENSON

TIPS & TRICKS JOHN STEVENSON TIPS & TRICKS Tips and Tricks Workspaces Windows and Views Projects Sharing Projects Source Control Editor Tips Debugging Debug Options Debugging Without a Project Graphs Using Eclipse Plug-ins Use Multiple

More information

SOS SO S O n O lin n e lin e Bac Ba kup cku ck p u USER MANUAL

SOS SO S O n O lin n e lin e Bac Ba kup cku ck p u USER MANUAL SOS Online Backup USER MANUAL HOW TO INSTALL THE SOFTWARE 1. Download the software from the website: http://www.sosonlinebackup.com/download_the_software.htm 2. Click Run to install when promoted, or alternatively,

More information

Business Objects Version 5 : Introduction

Business Objects Version 5 : Introduction Business Objects Version 5 : Introduction Page 1 TABLE OF CONTENTS Introduction About Business Objects Changing Your Password Retrieving Pre-Defined Reports Formatting Your Report Using the Slice and Dice

More information

USER GUIDE MANTRA WEB EXTRACTOR. www.altiliagroup.com

USER GUIDE MANTRA WEB EXTRACTOR. www.altiliagroup.com USER GUIDE MANTRA WEB EXTRACTOR www.altiliagroup.com Page 1 of 57 MANTRA WEB EXTRACTOR USER GUIDE TABLE OF CONTENTS CONVENTIONS... 2 CHAPTER 2 BASICS... 6 CHAPTER 3 - WORKSPACE... 7 Menu bar 7 Toolbar

More information

Sabre Red Apps. Developer Toolkit Overview. October 2014

Sabre Red Apps. Developer Toolkit Overview. October 2014 Sabre Red Apps Developer Toolkit Overview October 2014 Red Apps are optional, authorized applications that extend the capabilities of Sabre Red Workspace. Red Apps are Sabre's branded version of an Eclipse

More information

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This

More information

Semester Thesis Traffic Monitoring in Sensor Networks

Semester Thesis Traffic Monitoring in Sensor Networks Semester Thesis Traffic Monitoring in Sensor Networks Raphael Schmid Departments of Computer Science and Information Technology and Electrical Engineering, ETH Zurich Summer Term 2006 Supervisors: Nicolas

More information

tools that make every developer a quality expert

tools that make every developer a quality expert tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX

More information

WebSphere Business Monitor V6.2 Business space dashboards

WebSphere Business Monitor V6.2 Business space dashboards Copyright IBM Corporation 2009 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 6.2 LAB EXERCISE WebSphere Business Monitor V6.2 What this exercise is about... 2 Lab requirements... 2 What you should

More information

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC MyOra 3.0 SQL Tool for Oracle User Guide Jayam Systems, LLC Contents Features... 4 Connecting to the Database... 5 Login... 5 Login History... 6 Connection Indicator... 6 Closing the Connection... 7 SQL

More information

NETWORK PRINT MONITOR User Guide

NETWORK PRINT MONITOR User Guide NETWORK PRINT MONITOR User Guide Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable

More information

Colligo Email Manager 6.0. Offline Mode - User Guide

Colligo Email Manager 6.0. Offline Mode - User Guide 6.0 Offline Mode - User Guide Contents Colligo Email Manager 1 Key Features 1 Benefits 1 Installing and Activating Colligo Email Manager 2 Checking for Updates 3 Updating Your License Key 3 Managing SharePoint

More information

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24 Data Federation Administration Tool Guide Content 1 What's new in the.... 5 2 Introduction to administration

More information

A Crash Course in OS X D. Riley and M. Allen

A Crash Course in OS X D. Riley and M. Allen Objectives A Crash Course in OS X D. Riley and M. Allen To learn some of the basics of the OS X operating system - including the use of the login panel, system menus, the file browser, the desktop, and

More information

Attix5 Pro Server Edition

Attix5 Pro Server Edition Attix5 Pro Server Edition V7.0.3 User Manual for Linux and Unix operating systems Your guide to protecting data with Attix5 Pro Server Edition. Copyright notice and proprietary information All rights reserved.

More information

Avaya Network Configuration Manager User Guide

Avaya Network Configuration Manager User Guide Avaya Network Configuration Manager User Guide May 2004 Avaya Network Configuration Manager User Guide Copyright Avaya Inc. 2004 ALL RIGHTS RESERVED The products, specifications, and other technical information

More information

Flash Tutorial Part I

Flash Tutorial Part I Flash Tutorial Part I This tutorial is intended to give you a basic overview of how you can use Flash for web-based projects; it doesn t contain extensive step-by-step instructions and is therefore not

More information

Eclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project.

Eclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project. Eclipse with Mac OSX Java developers have quickly made Eclipse one of the most popular Java coding tools on Mac OS X. But although Eclipse is a comfortable tool to use every day once you know it, it is

More information

Intellect Platform - Tables and Templates Basic Document Management System - A101

Intellect Platform - Tables and Templates Basic Document Management System - A101 Intellect Platform - Tables and Templates Basic Document Management System - A101 Interneer, Inc. 4/12/2010 Created by Erika Keresztyen 2 Tables and Templates - A101 - Basic Document Management System

More information

PTC Integrity Eclipse and IBM Rational Development Platform Guide

PTC Integrity Eclipse and IBM Rational Development Platform Guide PTC Integrity Eclipse and IBM Rational Development Platform Guide The PTC Integrity integration with Eclipse Platform and the IBM Rational Software Development Platform series allows you to access Integrity

More information

Dreamweaver and Fireworks MX Integration Brian Hogan

Dreamweaver and Fireworks MX Integration Brian Hogan Dreamweaver and Fireworks MX Integration Brian Hogan This tutorial will take you through the necessary steps to create a template-based web site using Macromedia Dreamweaver and Macromedia Fireworks. The

More information

DBA xpress Product Overview

DBA xpress Product Overview DBA xpress Product Overview provides next-generation SQL tools specifically tailored for performance and ease of use when architecting or administering large microsoft SQL Server database systems. Key

More information

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto lft@inescporto.pt Luís Teixeira INESC Porto, Universidade Católica Portuguesa lmt@inescporto.pt Luís Corte-Real

More information

Tips and Tricks SAGE ACCPAC INTELLIGENCE

Tips and Tricks SAGE ACCPAC INTELLIGENCE Tips and Tricks SAGE ACCPAC INTELLIGENCE 1 Table of Contents Auto e-mailing reports... 4 Automatically Running Macros... 7 Creating new Macros from Excel... 8 Compact Metadata Functionality... 9 Copying,

More information

Microsoft Access 2010 Part 1: Introduction to Access

Microsoft Access 2010 Part 1: Introduction to Access CALIFORNIA STATE UNIVERSITY, LOS ANGELES INFORMATION TECHNOLOGY SERVICES Microsoft Access 2010 Part 1: Introduction to Access Fall 2014, Version 1.2 Table of Contents Introduction...3 Starting Access...3

More information

JOOMLA 2.5 MANUAL WEBSITEDESIGN.CO.ZA

JOOMLA 2.5 MANUAL WEBSITEDESIGN.CO.ZA JOOMLA 2.5 MANUAL WEBSITEDESIGN.CO.ZA All information presented in the document has been acquired from http://docs.joomla.org to assist you with your website 1 JOOMLA 2.5 MANUAL WEBSITEDESIGN.CO.ZA BACK

More information

SPSS: Getting Started. For Windows

SPSS: Getting Started. For Windows For Windows Updated: August 2012 Table of Contents Section 1: Overview... 3 1.1 Introduction to SPSS Tutorials... 3 1.2 Introduction to SPSS... 3 1.3 Overview of SPSS for Windows... 3 Section 2: Entering

More information

2 SQL in iseries Navigator

2 SQL in iseries Navigator 2 SQL in iseries Navigator In V4R4, IBM added an SQL scripting tool to the standard features included within iseries Navigator and has continued enhancing it in subsequent releases. Because standard features

More information

BI 4.1 Quick Start Guide

BI 4.1 Quick Start Guide BI 4.1 Quick Start Guide BI 4.1 Quick Start Guide... 1 Introduction... 4 Logging in... 4 Home Screen... 5 Documents... 6 Preferences... 8 Setting Up Preferences to Display Public Folders... 10 Web Intelligence...

More information

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc. WA2088 WebSphere Application Server 8.5 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2013 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4

More information

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Wyatt Spear, Allen Malony, Alan Morris, Sameer Shende {wspear, malony, amorris, sameer}@cs.uoregon.edu

More information

OpenSta OpenSource for Web Load, HTTP Stress & Performance testing

OpenSta OpenSource for Web Load, HTTP Stress & Performance testing Magazine OpenSta OpenSource for Web Load, HTTP Stress & Performance testing Author: Łukasz Smolarski About the Author: Łukasz Smolarski : Graduated from Higher School of Business-National Louis University

More information

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you

More information

EXCEL PIVOT TABLE David Geffen School of Medicine, UCLA Dean s Office Oct 2002

EXCEL PIVOT TABLE David Geffen School of Medicine, UCLA Dean s Office Oct 2002 EXCEL PIVOT TABLE David Geffen School of Medicine, UCLA Dean s Office Oct 2002 Table of Contents Part I Creating a Pivot Table Excel Database......3 What is a Pivot Table...... 3 Creating Pivot Tables

More information

Introduction to Eclipse

Introduction to Eclipse Introduction to Eclipse Overview Eclipse Background Obtaining and Installing Eclipse Creating a Workspaces / Projects Creating Classes Compiling and Running Code Debugging Code Sampling of Features Summary

More information

EXCEL 2007. Using Excel for Data Query & Management. Information Technology. MS Office Excel 2007 Users Guide. IT Training & Development

EXCEL 2007. Using Excel for Data Query & Management. Information Technology. MS Office Excel 2007 Users Guide. IT Training & Development Information Technology MS Office Excel 2007 Users Guide EXCEL 2007 Using Excel for Data Query & Management IT Training & Development (818) 677-1700 Training@csun.edu http://www.csun.edu/training TABLE

More information

OVERVIEW. Microsoft Project terms and definitions

OVERVIEW. Microsoft Project terms and definitions PROJECT 2003 DISCLAIMER: This reference guide is meant for experienced Microsoft Project users. It provides a list of quick tips and shortcuts for familiar features. This guide does NOT replace training

More information

Operating Systems. and Windows

Operating Systems. and Windows Operating Systems and Windows What is an Operating System? The most important program that runs on your computer. It manages all other programs on the machine. Every PC has to have one to run other applications

More information

Talend Open Studio for MDM. Getting Started Guide 6.0.0

Talend Open Studio for MDM. Getting Started Guide 6.0.0 Talend Open Studio for MDM Getting Started Guide 6.0.0 Talend Open Studio for MDM Adapted for v6.0.0. Supersedes previous releases. Publication date: July 2, 2015 Copyleft This documentation is provided

More information

Creating Online Surveys with Qualtrics Survey Tool

Creating Online Surveys with Qualtrics Survey Tool Creating Online Surveys with Qualtrics Survey Tool Copyright 2015, Faculty and Staff Training, West Chester University. A member of the Pennsylvania State System of Higher Education. No portion of this

More information

Hermes.Net IVR Designer Page 2 36

Hermes.Net IVR Designer Page 2 36 Hermes.Net IVR Designer Page 2 36 Summary 1. Introduction 4 1.1 IVR Features 4 2. The interface 5 2.1 Description of the Interface 6 2.1.1 Menus. Provides 6 2.1.2 Commands for IVR editions. 6 2.1.3 Commands

More information

Custom Reporting System User Guide

Custom Reporting System User Guide Citibank Custom Reporting System User Guide April 2012 Version 8.1.1 Transaction Services Citibank Custom Reporting System User Guide Table of Contents Table of Contents User Guide Overview...2 Subscribe

More information

Server & Workstation Installation of Client Profiles for Windows

Server & Workstation Installation of Client Profiles for Windows C ase Manag e m e n t by C l i e n t P rofiles Server & Workstation Installation of Client Profiles for Windows T E C H N O L O G Y F O R T H E B U S I N E S S O F L A W General Notes to Prepare for Installing

More information

Search help. More on Office.com: images templates

Search help. More on Office.com: images templates Page 1 of 14 Access 2010 Home > Access 2010 Help and How-to > Getting started Search help More on Office.com: images templates Access 2010: database tasks Here are some basic database tasks that you can

More information

Colligo Email Manager 6.0. Connected Mode - User Guide

Colligo Email Manager 6.0. Connected Mode - User Guide 6.0 Connected Mode - User Guide Contents Colligo Email Manager 1 Benefits 1 Key Features 1 Platforms Supported 1 Installing and Activating Colligo Email Manager 2 Checking for Updates 3 Updating Your License

More information

Eclipse 4 RCP application Development COURSE OUTLINE

Eclipse 4 RCP application Development COURSE OUTLINE Description The Eclipse 4 RCP application development course will help you understand how to implement your own application based on the Eclipse 4 platform. The Eclipse 4 release significantly changes

More information

Universal Simple Control, USC-1

Universal Simple Control, USC-1 Universal Simple Control, USC-1 Data and Event Logging with the USB Flash Drive DATA-PAK The USC-1 universal simple voltage regulator control uses a flash drive to store data. Then a propriety Data and

More information

Visual Studio.NET Database Projects

Visual Studio.NET Database Projects Visual Studio.NET Database Projects CHAPTER 8 IN THIS CHAPTER Creating a Database Project 294 Database References 296 Scripts 297 Queries 312 293 294 Visual Studio.NET Database Projects The database project

More information

Rational Developer for IBM i (RDi) Introduction to RDi

Rational Developer for IBM i (RDi) Introduction to RDi IBM Software Group Rational Developer for IBM i (RDi) Introduction to RDi Featuring: Creating a connection, setting up the library list, working with objects using Remote Systems Explorer. Last Update:

More information

FioranoMQ 9. High Availability Guide

FioranoMQ 9. High Availability Guide FioranoMQ 9 High Availability Guide Copyright (c) 1999-2008, Fiorano Software Technologies Pvt. Ltd., Copyright (c) 2008-2009, Fiorano Software Pty. Ltd. All rights reserved. This software is the confidential

More information

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA)

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA) České vysoké učení technické v Praze Fakulta elektrotechnická Návrh Uživatelského Rozhraní X36NUR Editors Comparison (NetBeans IDE, Eclipse, ) May 5, 2008 Goal and purpose of test Purpose of this test

More information

An Easier Way for Cross-Platform Data Acquisition Application Development

An Easier Way for Cross-Platform Data Acquisition Application Development An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers

More information

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the Sage MAS Intelligence Reports... 3 Copying, Pasting and Renaming Reports... 4 To create a new report from an existing report...

More information

NASA Workflow Tool. User Guide. September 29, 2010

NASA Workflow Tool. User Guide. September 29, 2010 NASA Workflow Tool User Guide September 29, 2010 NASA Workflow Tool User Guide 1. Overview 2. Getting Started Preparing the Environment 3. Using the NED Client Common Terminology Workflow Configuration

More information

The System Monitor Handbook. Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig

The System Monitor Handbook. Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig 2 Contents 1 Introduction 6 2 Using System Monitor 7 2.1 Getting started........................................ 7 2.2 Process Table.........................................

More information

Working with the Ektron Content Management System

Working with the Ektron Content Management System Working with the Ektron Content Management System Table of Contents Creating Folders Creating Content 3 Entering Text 3 Adding Headings 4 Creating Bullets and numbered lists 4 External Hyperlinks and e

More information

Embarcadero DB Change Manager 6.0 and DB Change Manager XE2

Embarcadero DB Change Manager 6.0 and DB Change Manager XE2 Product Documentation Embarcadero DB Change Manager 6.0 and DB Change Manager XE2 User Guide Versions 6.0, XE2 Last Revised April 15, 2011 2011 Embarcadero Technologies, Inc. Embarcadero, the Embarcadero

More information

Microsoft Query, the helper application included with Microsoft Office, allows

Microsoft Query, the helper application included with Microsoft Office, allows 3 RETRIEVING ISERIES DATA WITH MICROSOFT QUERY Microsoft Query, the helper application included with Microsoft Office, allows Office applications such as Word and Excel to read data from ODBC data sources.

More information

Special Edition for FastTrack Software

Special Edition for FastTrack Software 08/14 The magazine for professional system and networkadministration Special Edition for FastTrack Software Tested: FastTrack Automation Studio www.it-administrator.com TESTS I FastTrack Automation Studio

More information

In list view, the Finder window displays folder or volume contents as a list, which can be sorted by name, date, kind, or other criteria.

In list view, the Finder window displays folder or volume contents as a list, which can be sorted by name, date, kind, or other criteria. Using the Finder When you first start up your Mac, you're greeted by the Finder, which allows you to visually access practically everything on your Mac, including applications, hard disks, files, folders,

More information

BI xpress Product Overview

BI xpress Product Overview BI xpress Product Overview Develop and manage SSIS packages with ease! Key Features Create a robust auditing and notification framework for SSIS Speed BI development with SSAS calculations and SSIS package

More information

StrikeRisk v6.0 IEC/EN 62305-2 Risk Management Software Getting Started

StrikeRisk v6.0 IEC/EN 62305-2 Risk Management Software Getting Started StrikeRisk v6.0 IEC/EN 62305-2 Risk Management Software Getting Started Contents StrikeRisk v6.0 Introduction 1/1 1 Installing StrikeRisk System requirements Installing StrikeRisk Installation troubleshooting

More information

ecollege AU Release Notes - ClassLive ClassLive

ecollege AU Release Notes - ClassLive ClassLive Release Notes - 10200 A. East Girard Ave. Denver, CO 80213 Phone 303.873.7400 Fax 303.873.7449 Table of Contents INTRODUCTION...3 Entry... 4 Feature Overview... 5 Graphing Calculator... 7 TECHNICAL REQUIREMENTS...8

More information

Practical Eclipse Rich Client Platform Projects

Practical Eclipse Rich Client Platform Projects Practical Eclipse Rich Client Platform Projects Vladimir Silva HOCHSCHULE LIECHTENSTEIN Bibliothek Apress About the Author About the Technical Reviewer Introduction, xv CHAPTER 1 Foundations of Eclipse

More information

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights

More information

NetBeans Profiler is an

NetBeans Profiler is an NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that

More information

Microsoft Access 2010 handout

Microsoft Access 2010 handout Microsoft Access 2010 handout Access 2010 is a relational database program you can use to create and manage large quantities of data. You can use Access to manage anything from a home inventory to a giant

More information

user guide version 4.1

user guide version 4.1 user guide version 4.1 No Magic, Inc. 2010 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced by any means. All information

More information