From a1b265c318dbda4a213cec930785b81e4c0f7d2b Mon Sep 17 00:00:00 2001 From: elmot Date: Fri, 25 Sep 2015 16:40:44 +0300 Subject: Framework documentation IN Change-Id: I767477c1fc3745f9e1f58075fe30c9ac8da63581 --- .../introduction/chapter-introduction.asciidoc | 17 + documentation/introduction/img/HelloWorld.png | Bin 0 -> 25157 bytes .../introduction/img/architecture-vaadin7-hi.png | Bin 0 -> 105306 bytes .../introduction/img/architecture-vaadin7-lo.png | Bin 0 -> 23570 bytes .../introduction/img/intro-themes-faded-hi.png | Bin 0 -> 175732 bytes .../introduction/img/intro-themes-faded-lo.png | Bin 0 -> 51462 bytes .../introduction/intro-background.asciidoc | 94 +++ documentation/introduction/intro-eclipse.asciidoc | 40 + documentation/introduction/intro-goals.asciidoc | 53 ++ documentation/introduction/intro-overview.asciidoc | 89 +++ .../introduction/intro-walkthrough.asciidoc | 111 +++ .../original-drawings/architecture-vaadin7.svg | 826 +++++++++++++++++++ .../original-drawings/architecture.svg | 449 +++++++++++ .../original-drawings/intro-layout-capture-1.png | Bin 0 -> 22465 bytes .../original-drawings/intro-themes-faded.svg | 143 ++++ .../original-drawings/structure.graffle | 883 +++++++++++++++++++++ 16 files changed, 2705 insertions(+) create mode 100644 documentation/introduction/chapter-introduction.asciidoc create mode 100644 documentation/introduction/img/HelloWorld.png create mode 100644 documentation/introduction/img/architecture-vaadin7-hi.png create mode 100644 documentation/introduction/img/architecture-vaadin7-lo.png create mode 100644 documentation/introduction/img/intro-themes-faded-hi.png create mode 100644 documentation/introduction/img/intro-themes-faded-lo.png create mode 100644 documentation/introduction/intro-background.asciidoc create mode 100644 documentation/introduction/intro-eclipse.asciidoc create mode 100644 documentation/introduction/intro-goals.asciidoc create mode 100644 documentation/introduction/intro-overview.asciidoc create mode 100644 documentation/introduction/intro-walkthrough.asciidoc create mode 100644 documentation/introduction/original-drawings/architecture-vaadin7.svg create mode 100644 documentation/introduction/original-drawings/architecture.svg create mode 100644 documentation/introduction/original-drawings/intro-layout-capture-1.png create mode 100644 documentation/introduction/original-drawings/intro-themes-faded.svg create mode 100644 documentation/introduction/original-drawings/structure.graffle (limited to 'documentation/introduction') diff --git a/documentation/introduction/chapter-introduction.asciidoc b/documentation/introduction/chapter-introduction.asciidoc new file mode 100644 index 0000000000..111d3a23f5 --- /dev/null +++ b/documentation/introduction/chapter-introduction.asciidoc @@ -0,0 +1,17 @@ +[[intro]] +== Introduction + +This chapter gives a brief introduction to software development with Vaadin. We +also try to give some insight about the design philosophy behind Vaadin and its +history. + + +include::intro-overview.asciidoc[leveloffset=+2] + +include::intro-walkthrough.asciidoc[leveloffset=+2] + +include::intro-eclipse.asciidoc[leveloffset=+2] + +include::intro-goals.asciidoc[leveloffset=+2] + +include::intro-background.asciidoc[leveloffset=+2] diff --git a/documentation/introduction/img/HelloWorld.png b/documentation/introduction/img/HelloWorld.png new file mode 100644 index 0000000000..3991d0dbab Binary files /dev/null and b/documentation/introduction/img/HelloWorld.png differ diff --git a/documentation/introduction/img/architecture-vaadin7-hi.png b/documentation/introduction/img/architecture-vaadin7-hi.png new file mode 100644 index 0000000000..a28e5be7c6 Binary files /dev/null and b/documentation/introduction/img/architecture-vaadin7-hi.png differ diff --git a/documentation/introduction/img/architecture-vaadin7-lo.png b/documentation/introduction/img/architecture-vaadin7-lo.png new file mode 100644 index 0000000000..5ef0c0bea0 Binary files /dev/null and b/documentation/introduction/img/architecture-vaadin7-lo.png differ diff --git a/documentation/introduction/img/intro-themes-faded-hi.png b/documentation/introduction/img/intro-themes-faded-hi.png new file mode 100644 index 0000000000..e7f4653232 Binary files /dev/null and b/documentation/introduction/img/intro-themes-faded-hi.png differ diff --git a/documentation/introduction/img/intro-themes-faded-lo.png b/documentation/introduction/img/intro-themes-faded-lo.png new file mode 100644 index 0000000000..b9c4b5724f Binary files /dev/null and b/documentation/introduction/img/intro-themes-faded-lo.png differ diff --git a/documentation/introduction/intro-background.asciidoc b/documentation/introduction/intro-background.asciidoc new file mode 100644 index 0000000000..ec70b75d9f --- /dev/null +++ b/documentation/introduction/intro-background.asciidoc @@ -0,0 +1,94 @@ +--- +title: Background +order: 5 +layout: page +--- + +[[intro.background]] += Background + +The Vaadin Framework was not written overnight. After working with web user +interfaces since the beginning of the Web, a group of developers got together in +2000 to form IT Mill. The team had a desire to develop a new programming +paradigm that would support the creation of real user interfaces for real +applications using a real programming language. + +The library was originally called Millstone Library. The first version was used +in a large production application that IT Mill designed and implemented for an +international pharmaceutical company. IT Mill made the application already in +the year 2001 and it is still in use. Since then, the company has produced +dozens of large business applications with the library and it has proven its +ability to solve hard problems easily. + +The next generation of the library, IT Mill Toolkit Release 4, was released in +2006. It introduced an entirely new AJAX-based presentation engine. This allowed +the development of AJAX applications without the need to worry about +communications between the client and the server. + +[[intro.background.toolkit-5]] +== Release 5 Into the Open + +((("IT Mill +Toolkit"))) +((("AJAX"))) +IT Mill Toolkit 5, released initially at the end of 2007, took a significant +step further into AJAX. The client-side rendering of the user interface was +completely rewritten using GWT, the Google Web Toolkit. ((("Google Web +Toolkit"))) + +IT Mill Toolkit 5 introduced many significant improvements both in the +server-side API and in the functionality. Rewriting the Client-Side Engine with +GWT allowed the use of Java both on the client and the server-side. The +transition from JavaScript to GWT made the development and integration of custom +components and customization of existing components much easier than before, and +it also allows easy integration of existing GWT components. The adoption of GWT +on the client-side did not, by itself, cause any changes in the server-side API, +because GWT is a browser technology that is hidden well behind the API. Also +theming was completely revised in IT Mill Toolkit 5. + +The Release 5 was published under the Apache License 2, an unrestrictive open +source license, to create faster expansion of the user base and to make the +formation of a developer community possible. + + +[[intro.background.vaadin6]] +== Birth of Vaadin Release 6 + +IT Mill Toolkit was renamed as __Vaadin Framework__, or Vaadin in short, in +spring 2009. Later IT Mill, the company, was also renamed as Vaadin Ltd. Vaadin +means an adult female semi-domesticated mountain reindeer in Finnish. + +With Vaadin 6, the number of developers using the framework exploded. Together +with the release, the Vaadin Plugin for Eclipse was released, helping the +creation of Vaadin projects. The introduction of Vaadin Directory in early 2010 +gave it a further boost, as the number of available components multiplied almost +overnight. Many of the originally experimental components have since then +matured and are now used by thousands of developers. In 2013, we are seeing +tremendous growth in the ecosystem around Vaadin. The size of the user +community, at least if measured by forum activity, has already gone past the +competing server-side frameworks and even GWT. + + +[[intro.background.vaadin7]] +== The Major Revision with Vaadin 7 + +Vaadin 7 was a major revision that changed the Vaadin API much more than Vaadin +6 did. It is certainly more web-oriented than Vaadin 6 was. We are doing +everything we can to help Vaadin rise high in the web universe. Some of this +work is easy and almost routine - fixing bugs and implementing features. But +going higher also requires standing firmer. That was one of the aims of Vaadin 7 +- redesigning the product so that the new architecture enables Vaadin to reach +over many long-standing challenges. Many of the changes required breaking API +compatibility with Vaadin 6, especially in the client-side, but they are made +with a strong desire to avoid carrying unnecessary legacy burden far into the +future. + +Inclusion of the Google Web Toolkit in Vaadin 7 was a significant development, +as it meant that Vaadin now provides support for GWT as well. When Google opened +the GWT development in summer 2012, Vaadin (the company) joined the new GWT +steering committee. As a member of the committee, Vaadin can work towards the +success of GWT as a foundation of the Java web development community. + + + + diff --git a/documentation/introduction/intro-eclipse.asciidoc b/documentation/introduction/intro-eclipse.asciidoc new file mode 100644 index 0000000000..b2fb127f7b --- /dev/null +++ b/documentation/introduction/intro-eclipse.asciidoc @@ -0,0 +1,40 @@ +--- +title: Support for the Eclipse IDE +order: 3 +layout: page +--- + +[[intro.eclipse]] += Support for the Eclipse IDE + +While Vaadin is not bound to any specific IDE, and you can in fact easily use it +without any IDE altogether, we provide special support for the Eclipse IDE, +which has become the most used environment for Java development. The support is +provided in the Vaadin Plugin for Eclipse, which helps you in: + +* Creating new Vaadin projects + +* Creating custom themes + +* Creating custom client-side widgets + +* Easily upgrading to a newer version of the Vaadin library + + +Using the Vaadin Plugin for Eclipse is the recommended way of installing Vaadin +for development. Downloading the installation package that contains the JARs or +defining Vaadin as a Maven dependency is also possible. + +Installing and updating the Eclipse plugin is covered in +<> and the creation of a new Vaadin project using the plugin +in +<>. See +<> and +<> for instructions on using the different features of the plugin. + + + diff --git a/documentation/introduction/intro-goals.asciidoc b/documentation/introduction/intro-goals.asciidoc new file mode 100644 index 0000000000..0972a998cf --- /dev/null +++ b/documentation/introduction/intro-goals.asciidoc @@ -0,0 +1,53 @@ +--- +title: Goals and Philosophy +order: 4 +layout: page +--- + +[[intro.goals]] += Goals and Philosophy + +Simply put, Vaadin's ambition is to be the best possible tool when it comes to +creating web user interfaces for business applications. It is easy to adopt, as +it is designed to support both entry-level and advanced programmers, as well as +usability experts and graphic designers. + +When designing Vaadin, we have followed the philosophy inscribed in the +following rules. + +== Right tool for the right purpose + +Because our goals are high, the focus must be clear. Vaadin is designed for +creating web applications. It is not designed for creating websites or +advertisement demos. You may find, for example, JSP/JSF or Flash more suitable +for such purposes. + + +== Simplicity and maintainability + +We have chosen to emphasize robustness, simplicity, and maintainability. This +involves following the well-established best practices in user interface +frameworks and ensuring that our implementation represents an ideal solution for +its purpose without clutter or bloat. + + +== XML is not designed for programming + +The Web is inherently document-centered and very much bound to the declarative +presentation of user interfaces. While Vaadin allows for declarative designs of +views, layouts, and even entire UIs, the programmatic approach by building the +UIs from Java components frees the programmer from these limitations. To create +highly dynamic views, it is more natural to create them by programming. + + +== Tools should not limit your work + +There should not be any limits on what you can do with the framework: if for +some reason the user interface components do not support what you need to +achieve, it must be easy to add new ones to your application. When you need to +create new components, the role of the framework is critical: it makes it easy +to create re-usable components that are easy to maintain. + + + + diff --git a/documentation/introduction/intro-overview.asciidoc b/documentation/introduction/intro-overview.asciidoc new file mode 100644 index 0000000000..fb46e6fac6 --- /dev/null +++ b/documentation/introduction/intro-overview.asciidoc @@ -0,0 +1,89 @@ +--- +title: Overview +order: 1 +layout: page +--- + +[[intro.overview]] += Overview + +Vaadin Framework is a Java web application development framework that is +designed to make creation and maintenance of high quality web-based user +interfaces easy. Vaadin supports two different programming models: server-side +and client-side. The server-driven programming model is the more powerful one. +It lets you forget the web and program user interfaces much like you would +program a desktop application with conventional Java toolkits such as AWT, +Swing, or SWT. But easier. + +While traditional web programming is a fun way to spend your time learning new +web technologies, you probably want to be productive and concentrate on the +application logic. The server-side Vaadin framework takes care of managing the +user interface in the browser and the __AJAX__ communications between the +browser and the server. With the Vaadin approach, you do not need to learn and +deal directly with browser technologies, such as HTML or JavaScript. + +[[figure.intro.architecture]] +.Vaadin Application Architecture +image::img/architecture-vaadin7-hi.png[] + +<> illustrates the basic architectures of web +applications made with Vaadin. The server-side application architecture consists +of the __server-side framework__ and a __client-side engine__. The engine runs +in the browser as JavaScript code, rendering the user interface, and delivering +user interaction to the server. The UI logic of an application runs as a Java +Servlet in a Java application server. + +As the client-side engine is executed as JavaScript in the browser, no browser +plugins are needed for using applications made with Vaadin. This gives it an +edge over frameworks based on Flash, Java Applets, or other plugins. Vaadin +relies on the support of Google Web Toolkit for a wide range of browsers, so +that the developer does not need to worry about browser support. + +Because HTML, JavaScript, and other browser technologies are essentially +invisible to the application logic, you can think of the web browser as only a +thin client platform. A thin client displays the user interface and communicates +user events to the server at a low level. The control logic of the user +interface runs on a Java-based web server, together with your business logic. By +contrast, a normal client-server architecture with a dedicated client +application would include a lot of application specific communications between +the client and the server. Essentially removing the user interface tier from the +application architecture makes our approach a very effective one. + +Behind the server-driven development model, Vaadin makes the best use of AJAX ( +__Asynchronous JavaScript and XML__, see +<> +for a description) techniques that make it possible to create Rich Internet +Applications (RIA) that are as responsive and interactive as desktop +applications. + +In addition to the server-side Java application development, you can develop on +the client-side by making new widgets in Java, and even pure client-side +applications that run solely in the browser. The Vaadin client-side framework +includes Google Web Toolkit (GWT), which provides a compiler from Java to the +JavaScript that runs in the browser, as well a full-featured user interface +framework. With this approach, Vaadin is pure Java on both sides. ((("Google Web +Toolkit"))) + +Vaadin uses a client-side engine for rendering the user interface of a +server-side application in the browser. All the client-server communications are +hidden well under the hood. +((("JavaScript"))) +Vaadin is designed to be extensible, and you can indeed use any 3rd-party +widgets easily, in addition to the component repertoire offered in Vaadin. In +fact, you can find hundreds of add-ons in the Vaadin Directory. + +Vaadin allows flexible separation between the appearance, structure, and +interaction logic of the user interface. You can design the layouts either +programmatically or declaratively, at the level of your choosing. The final +appearance is defined in __themes__ in CSS or Sass, as described in +<>. + +We hope that this is enough about the basic architecture and features of Vaadin +for now. You can read more about it later in +<>, +or jump straight to more practical things in +<>. + + + diff --git a/documentation/introduction/intro-walkthrough.asciidoc b/documentation/introduction/intro-walkthrough.asciidoc new file mode 100644 index 0000000000..218e76b337 --- /dev/null +++ b/documentation/introduction/intro-walkthrough.asciidoc @@ -0,0 +1,111 @@ +--- +title: Example Application Walkthrough +order: 2 +layout: page +--- + +[[intro.walkthrough]] += Example Application Walkthrough + +Let us follow the long tradition of first saying "Hello World!" when learning a +new programming framework. First, using the primary server-side API. + + +[source, java] +---- +import com.vaadin.server.VaadinRequest; +import com.vaadin.ui.Label; +import com.vaadin.ui.UI; + +@Title("My UI") +@Theme("valo") +public class HelloWorld extends UI { + @Override + protected void init(VaadinRequest request) { + // Create the content root layout for the UI + VerticalLayout content = new VerticalLayout(); + setContent(content); + + // Display the greeting + content.addComponent(new Label("Hello World!")); + + // Have a clickable button + content.addComponent(new Button("Push Me!", + new ClickListener() { + @Override + public void buttonClick(ClickEvent e) { + Notification.show("Pushed!"); + } + })); + } +} +---- + +A Vaadin application has one or more __UI__s that extend the +[classname]#com.vaadin.ui.UI# class. A UI is a part of the web page in which the +Vaadin application runs. An application can have multiple UIs in the same page, +especially in portals, or in different windows or tabs. A UI is associated with +a user session, and a session is created for each user who uses the application. +In the context of our Hello World UI, it is sufficient to know that the +underlying session is created when the user first accesses the application by +opening the page, and the [methodname]#init()# method is invoked at that time. + +The page title, which is shown in the caption of the browser window or tab, is +defined with an annotation. The example uses a layout component as the root +content of the UI, as that is the case with most Vaadin applications, which +normally have more than one component. It then creates a new [classname]#Label# +user interface component, which displays simple text, and sets the text to +"Hello World!". The label is added to the layout. + +The example also shows how to create a button and handle button click events. +Event handling is described in +<> and on the practical side in +<>. In addition to listeners, in Java 8 you can handle +events with lambda expressions, which simplifies the handler code significantly. + + +[source, java] +---- +content.addComponent(new Button("Push Me!", + event -> Notification.show("Pushed!"))); +---- + +The result of the Hello World application, when opened in a browser, is shown in +<>. + +[[figure.intro.walkthrough]] +.Hello World Application +image::img/HelloWorld.png[] + +To run a program, you need to package it as a web application WAR package and +deploy it to a server, as explained in +<>. During development, you typically deploy to an application +server integrated with the IDE. + +Developing a pure client-side application, you could write a Hello World just as +easily, and also in Java: + + +[source, java] +---- +public class HelloWorld implements EntryPoint { + @Override + public void onModuleLoad() { + RootPanel.get().add(new Label("Hello, world!")); + } +} +---- + +We do not set the title here, because it is usually defined in the HTML page in +which the code is executed. The application would be compiled into JavaScript +with the Vaadin Client Compiler (or GWT Compiler). It is more typical, however, +to write client-side widgets, which you can then use from a server-side Vaadin +application. For more information regarding client-side development, see +<>. + + + diff --git a/documentation/introduction/original-drawings/architecture-vaadin7.svg b/documentation/introduction/original-drawings/architecture-vaadin7.svg new file mode 100644 index 0000000000..581fb7aa04 --- /dev/null +++ b/documentation/introduction/original-drawings/architecture-vaadin7.svg @@ -0,0 +1,826 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + UI Logic + + + + + + + + + + + + + + + + + Components + + + + Built-inComponents + + + Add-onComponents + + + CustomComponents + + + + + + + + + + + + + + + + + + + Back-End BusinessLogicPersistence + + + + + + + + + + + + + + + + + + + Browser + + + + Built-inWidgets + + + Add-onWidgets + + + CustomWidgets + + + + + + + + + + + + Client-SideUI + + + + + + + + + Client-Side Engine + + + Service + + + + + + + + + + + + + Web Server / Portal + diff --git a/documentation/introduction/original-drawings/architecture.svg b/documentation/introduction/original-drawings/architecture.svg new file mode 100644 index 0000000000..674cd0b959 --- /dev/null +++ b/documentation/introduction/original-drawings/architecture.svg @@ -0,0 +1,449 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Client-SideEngine WebBrowser + + + + + + + + + + + JavaWebServer + + + + + + + + + + + YourUI + + + + + + + + + + + VaadinServer-SideFramework + + + + + + + + + + + Back-End Business LogicPersistenceDatabase + + diff --git a/documentation/introduction/original-drawings/intro-layout-capture-1.png b/documentation/introduction/original-drawings/intro-layout-capture-1.png new file mode 100644 index 0000000000..0823787f00 Binary files /dev/null and b/documentation/introduction/original-drawings/intro-layout-capture-1.png differ diff --git a/documentation/introduction/original-drawings/intro-themes-faded.svg b/documentation/introduction/original-drawings/intro-themes-faded.svg new file mode 100644 index 0000000000..fdeb1e9ef1 --- /dev/null +++ b/documentation/introduction/original-drawings/intro-themes-faded.svg @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/documentation/introduction/original-drawings/structure.graffle b/documentation/introduction/original-drawings/structure.graffle new file mode 100644 index 0000000000..6d3f8e124b --- /dev/null +++ b/documentation/introduction/original-drawings/structure.graffle @@ -0,0 +1,883 @@ + + + + + ActiveLayerIndex + 0 + AutoAdjust + + CanvasColor + + w + 1 + + CanvasOrigin + {0, 0} + CanvasScale + 1 + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2007-02-10 20:49:22 +0200 + Creator + Sami Ekblad + DisplayScale + 1 cm = 1 cm + GraphDocumentVersion + 5 + GraphicsList + + + Bounds + {{131.5, 135.5}, {181.5, 30}} + Class + ShapedGraphic + ID + 135 + Shape + Cloud + Style + + fill + + FillType + 2 + GradientAngle + 70 + GradientColor + + w + 0.666667 + + + stroke + + Color + + b + 0.631373 + g + 0.513726 + r + 0.411765 + + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 HTTP(S)} + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 150 + Points + + {167.953, 101.704} + {213.226, 199.296} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 146 + + + + Bounds + {{85, 42}, {138, 59.25}} + Class + ShapedGraphic + FontInfo + + Color + + w + 0 + + Font + Helvetica + NSKern + 0.0 + Size + 12 + + ID + 146 + Shape + Rectangle + Style + + fill + + Color + + b + 1 + g + 0.929412 + r + 0.85098 + + FillType + 2 + GradientAngle + 90 + GradientColor + + b + 0.772549 + g + 0.662745 + r + 0.568627 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 \expnd0\expndtw0\kerning0 +Web Browser\ +\ +(AJAX rendering)} + VerticalPad + 10 + + TextPlacement + 0 + + + Class + LineGraphic + Head + + ID + 4 + + ID + 145 + Points + + {278.935, 101.7} + {231.669, 199.3} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 3 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 144 + Points + + {221.373, 238.249} + {219.877, 271.501} + + Style + + stroke + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 4 + + + + Class + LineGraphic + Head + + ID + 142 + + ID + 143 + Points + + {235.183, 310.384} + {263.16, 343.893} + + Style + + stroke + + HeadArrow + FilledArrow + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 10 + + + + Bounds + {{259, 344.25}, {54, 54}} + Class + ShapedGraphic + ID + 142 + Shape + Rectangle + Style + + fill + + Color + + b + 1 + g + 0.929412 + r + 0.85098 + + FillType + 2 + GradientAngle + 90 + GradientColor + + b + 0.772549 + g + 0.662745 + r + 0.568627 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 DB} + + + + Class + LineGraphic + Head + + ID + 140 + + ID + 141 + Points + + {219.243, 310.5} + {219.657, 343.75} + + Style + + stroke + + HeadArrow + FilledArrow + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 10 + + + + Class + LineGraphic + Head + + ID + 139 + + ID + 24 + Points + + {203.296, 310.389} + {176.184, 343.861} + + Style + + stroke + + HeadArrow + FilledArrow + Pattern + 1 + TailArrow + 0 + + + Tail + + ID + 10 + + + + Bounds + {{193, 344.25}, {54, 54}} + Class + ShapedGraphic + ID + 140 + Shape + Rectangle + Style + + fill + + Color + + b + 1 + g + 0.929412 + r + 0.85098 + + FillType + 2 + GradientAngle + 90 + GradientColor + + b + 0.772549 + g + 0.662745 + r + 0.568627 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 EJB} + + + + Bounds + {{127, 344.25}, {54, 54}} + Class + ShapedGraphic + ID + 139 + Shape + Rectangle + Style + + fill + + Color + + b + 1 + g + 0.929412 + r + 0.85098 + + FillType + 2 + GradientAngle + 90 + GradientColor + + b + 0.772549 + g + 0.662745 + r + 0.568627 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 Web\ +Service} + + + + Bounds + {{125, 272}, {188, 38}} + Class + ShapedGraphic + FontInfo + + Color + + b + 1 + g + 1 + r + 1 + + + ID + 10 + Shape + Rectangle + Style + + fill + + Color + + b + 0.041377 + g + 0.853261 + r + 6.48952e-05 + + FillType + 2 + GradientAngle + 80 + GradientColor + + b + 0.0224016 + g + 0.461957 + r + 3.51343e-05 + + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf1 Java Application} + + + + Bounds + {{131.5, 199.75}, {181.5, 38}} + Class + ShapedGraphic + FontInfo + + Color + + b + 1 + g + 1 + r + 1 + + + ID + 4 + Shape + Rectangle + Style + + fill + + Color + + b + 1 + g + 0.630186 + r + 0.248129 + + FillType + 2 + GradientAngle + 80 + GradientColor + + b + 0.673913 + g + 5.08933e-05 + r + 0.109836 + + MiddleFraction + 0.579365074634552 + + stroke + + CornerRadius + 5 + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf1 IT Mill Toolkit Components} + + + + Bounds + {{231, 42}, {125, 59.25}} + Class + ShapedGraphic + FontInfo + + Color + + w + 0 + + Font + Helvetica + NSKern + 0.0 + Size + 12 + + ID + 3 + Shape + Rectangle + Style + + fill + + FillType + 2 + GradientAngle + 70 + GradientColor + + w + 0.666667 + + + stroke + + CornerRadius + 5 + Pattern + 1 + + + Text + + Text + {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420 +{\fonttbl\f0\fswiss\fcharset77 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 \expnd0\expndtw0\kerning0 +Web Browser\ +\ +(HTML rendering)} + VerticalPad + 10 + + TextPlacement + 0 + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 6 + IsPalette + NO + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + LinksVisible + NO + MagnetsVisible + NO + MasterSheet + Master 1 + MasterSheets + + + ActiveLayerIndex + 0 + AutoAdjust + + CanvasColor + + w + 1 + + CanvasOrigin + {0, 0} + CanvasScale + 1 + ColumnAlign + 1 + ColumnSpacing + 36 + DisplayScale + 1 cm = 1 cm + GraphicsList + + GridInfo + + HPages + 1 + IsPalette + NO + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Orientation + 2 + OutlineStyle + Basic + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Master 1 + UniqueID + 1 + VPages + 1 + + + ModificationDate + 2007-02-11 12:53:28 +0200 + Modifier + Joonas Lehtinen + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + OutlineStyle + Basic + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 0 + + NSLeftMargin + + float + 0 + + NSPaperSize + + size + {595, 842} + + NSRightMargin + + float + 0 + + NSTopMargin + + float + 0 + + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + DrawerOpen + + DrawerTab + Outline + DrawerWidth + 209 + FitInWindow + + Frame + {{78, 88}, {834, 898}} + ShowRuler + + ShowStatusBar + + VisibleRegion + {{-124, 0}, {819, 784}} + Zoom + 1 + + + -- cgit v1.2.3