<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AJAX Planet &#187; Java</title>
	<atom:link href="http://www.ajaxplanet.ru/category/technology/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxplanet.ru</link>
	<description></description>
	<lastBuildDate>Wed, 21 Jul 2010 10:42:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Google Web Toolkit. Небольшое руководство</title>
		<link>http://www.ajaxplanet.ru/google-web-toolkit-manual/</link>
		<comments>http://www.ajaxplanet.ru/google-web-toolkit-manual/#comments</comments>
		<pubDate>Mon, 29 Jan 2007 05:35:17 +0000</pubDate>
		<dc:creator>TermiT</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JAXA]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[перевод]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/google-web-toolkit-manual/</guid>
		<description><![CDATA[0. О статье. Это перевод статьи Джоана Хуртадо (Juan Hurtado) &#8220;GWT Small Guide&#8221;. Оригинал доступен на испанском и английском. Возможно перевод получится грубым, так как я очень торопился, буду рад узнать ваше мнение насчет качества перевода. Потапов Геннадий (TermiT) 1. Введение. 1.1. Презентация Я написал это небольшое руководство для людей, которые хотят научится создавать динамические [...]]]></description>
			<content:encoded><![CDATA[<p><strong>0.  О статье.</strong></p>
<blockquote><p>Это перевод статьи <noindex><a href="http://angel.hurtado.googlepages.com/">Джоана Хуртадо (Juan Hurtado)</a></noindex> &#8220;GWT Small Guide&#8221;. Оригинал доступен на <noindex><a href="http://angel.hurtado.googlepages.com/tutorialgwt">испанском</a></noindex> и <noindex><a href="http://angel.hurtado.googlepages.com/tutorialgwt2">английском</a></noindex>. Возможно перевод получится грубым, так как я очень торопился, буду рад узнать ваше мнение насчет качества перевода.</p>
</blockquote>
<p style="text-align: right;"><noindex><a href="http://toodoo.ru/user/4530/profile">Потапов Геннадий (TermiT)</a></noindex></p>
<div>
<p><strong>1. Введение.</strong></p>
<p><strong>1.1. Презентация</strong><br />
Я написал это небольшое руководство для людей, которые хотят научится создавать динамические приложения пользуясь <noindex><a href="http://code.google.com/webtoolkit/">GWT</a></noindex> (Google Web Toolkit) в AMP (Apache MySQL PHP)  среде. Основная идея в том, чтобы написать небольшой и очень простое приложение с использованием <noindex><a href="http://www.php.net/">PHP</a></noindex> и <noindex><a href="http://www.mysql.com/">MySQL</a></noindex> на стороне сервера, GWT для реализации интерфейса, <noindex><a href="http://www.json.org/">JSON</a></noindex> для обмена данными между клиентской и северной частями.</p>
<p><strong>1.2. О JSON</strong><br />
JSON (JavaScript Object Notation) &#8211; это легкий и удобный формат обмена данными. Отличительной чертой является то, что он прост и понятен для человека. Этот формат легко обрабатывается и генерируется программами. Он основан на языке <noindex><a href="http://www.crockford.com/javascript" title="JavaScript">JavaScript</a></noindex>, <noindex><a href="http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf" title="ECMA-262" rel="nofollow">Standard ECMA-262 3rd Edition — December 1999</a></noindex>. JSON — это текстовый формат, не зависящий от языка программирования. JSON использует соглашения близкие к Си-подобным языкам, включая C, C++, C#, Java, JavaScript, Perl, Python, и много других. Все это делает JSON идеальным языком для обмена данными. Вы можете найти много полезной информации о JSON здесь <noindex><a href="http://www.json.org/" title="JSON">www.json.org</a></noindex> (и тут: <noindex><a href="http://ru.wikipedia.org/wiki/JSON">ru.wikipedia.org/wiki/JSON</a></noindex>)</p>
<p><strong>1.3. О GWT</strong><br />
GWT (Google Web Toolkit) &#8211; это инструмент позволяющий легко создавать AJAX (<noindex><a href="http://ru.wikipedia.org/wiki/AJAX">ru.wikipedia.org/wiki/AJAX</a></noindex>) приложения на языке JAVA, проще говоря, GWT &#8220;переводит&#8221; ваш JAVA код в HTML и JavaScript. Подробнее о GWT  можно прочесть по адресу <noindex><a href="http://code.google.com/webtoolkit/">http://code.google.com/webtoolkit/</a></noindex></p>
<p><strong>1.4. Об этом руководстве</strong><br />
Мы сделаем небольшое приложение для поиска информации по сотрудникам в базе данных MySQL, используя в качестве параметра поиска имя сотрудника.</p>
<p><strong>2. Работа над серверной частью.</strong></p>
<p><strong>2.1. База данных</strong><br />
Нам нужна всего одна таблица, которая будет называться &#8216;directory&#8217;, и которую мы заполним информацией о сотрудниках:</p>
<p><noindex><a href="http://angel.hurtado.googlepages.com/database.png/database-full.jpg"><img src="http://angel.hurtado.googlepages.com/database.png/database-full.jpg" src="http://angel.hurtado.googlepages.com/database.png/database-full.jpg" alt="" width=470 border="0" /></a></noindex><br />
<strong>2.2. PHP скрипт</strong><br />
Для доступа к данным базы напишем PHP скрипт. Он будет выбирать данные и преобразовывать в JSON формат. Для этого будем использовать JSON PHP class, который можно скачать отсюда <noindex><a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=198">http://pear.php.net/pepr/pepr-proposal-show.php?id=198</a></noindex>. Этот класс позволяет преобразовывать значения из PHP в JSON формат и отправлять их браузеру. Файл &#8216;index.php&#8217; будет содержать следующий код:</p>
<p><code lang="php"><br />
< ?</p>
<p>// вызов JSON.php<br />
require_once(”JSON.php”);</p>
<p>// коннект к базе</p>
<p>$conector = mysql_connect(’localhost’, ‘root’, ‘juan’) or die(mysql_error());<br />
mysql_select_db(’JSONPHP’) or die(mysql_error());</p>
<p>//формируем запрос</p>
<p>$sqlQuery = “SELECT * FROM directory WHERE name LIKE ‘”. $_REQUEST[’tosearch’]. “%’”;<br />
$dataReturned = mysql_query($sqlQuery) or die(mysql_error());<br />
$i = 0;</p>
<p>while($row = mysql_fetch_array($dataReturned)){</p>
<p>// заполняем массив $value данными.</p>
<p>$value{”item”}{$i}{”Employe Number”}= $row[’enumber’];<br />
$value{”item”}{$i}{”Name”}= $row[’name’];<br />
$value{”item”}{$i}{”Position”}= $row[’position’];<br />
$value{”item”}{$i}{”Phone Number”}= $row[’phnumber’];<br />
$value{”item”}{$i}{”Location”}= $row[’location’];<br />
$i++;<br />
}</p>
<p>// использую JSON.php конвертируем данные в JSON формат и отправляем в браузер</p>
<p>$json = new Services_JSON();<br />
$output = $json->encode($value);<br />
print($output);<br />
?>
</p>
<p></code></p>
<p>И это весь код. Вывод этого php скрипта должен быть похож на следующие:<code>{"item":[{<br />
"Employe Number":"110009",<br />
"Name":"Juan Hurtado",<br />
"Position":"System Analist",<br />
"Phone Number":"81001121",<br />
"Location":"Monterrey City"}]<br />
} </code>Теперь пора заняться интерфейсом и GWT.</p>
<p><strong>3. Работа над клиентской частью.</strong></p>
<p><strong>3.1 Пример с JSON RPC</strong><br />
На сайте http://code.google.com/webtoolkit/ есть несколько примеров использования GWT. Один из них показывает, как использовать GWT  в связке с JSON для доступа к сервису <noindex><a href="http://www.yahoo.com/">Yahoo</a></noindex>.  Мы возьмем за основу нашего интерфейса пример JSON RPC, который можно скачать <noindex><a href="http://code.google.com/webtoolkit/documentation/examples/jsonrpc/">тут</a></noindex>.</p>
<p><strong>3.2 Создание нового приложения</strong><br />
Используя  projectCreator.cmd (этот файл находится в дистрибутиве GWT) создадим новый проект:<br />
<code>C:\&gt;projectCreator.cmd -eclipse PHPJSON -out PHPJSON<br />
Created directory PHPJSON\src<br />
Created file PHPJSON\.project<br />
Created file PHPJSON\.classpath</code><br />
Теперь создадим новый проект для eclipse с помощью <noindex><a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.Fundamentals.CommandLineTools.applicationCreator.html">applicationCreator.cmd</a></noindex>:<br />
C:\&gt;applicationCreator.cmd -eclipse PHPJSON -out PHPJSON com.juan.client.PHPJSON</p>
<p>Created directory PHPJSON\src\com\juan<br />
Created directory PHPJSON\src\com\juan\client<br />
Created directory PHPJSON\src\com\juan\public<br />
Created file PHPJSON\src\com\juan\PHPJSON.gwt.xml<br />
Created file PHPJSON\src\com\juan\public\PHPJSON.html<br />
Created file PHPJSON\src\com\juan\client\PHPJSON.java<br />
Created file PHPJSON\PHPJSON.launch<br />
Created file PHPJSON\PHPJSON-shell.cmd<br />
Created file PHPJSON\PHPJSON-compile.cmd</p>
<p>Пример JSON RPC содержит классы, которые позволяют обрабатывать иформацию в формате JSON. (Тут говорится о старой версии примера JSON RPC; в новой версии примера JSON RPC эти файлы не идут в дистрибутиве примера, так как эти классы стали стандартными в новой версии GWT. Но никто не мешает вам следовать примеру, все это будет работать и с новой версией GWT)  Скопируем из примера следующие файлы в папку PHPJSON\src\com\juan\client:</p>
<ul>
<li>JSONArray.java
</li>
<li>JSONBoolean.java
</li>
<li>JSONException.java
</li>
<li>JSONNumber.java
</li>
<li>JSONObject.java
</li>
<li>JSONParser.java
</li>
<li>JSONString.java
</li>
<li>JSONValue.java</li>
</ul>
<p>Во всех файлах нужно заменить строчку с данными о пути пакета. (в нашем случае нужно заменить package com.google.gwt.sample.json.client; на package com.juan.client;) Также исправьте пути в файле JSONParser.java. Затем импортируем наш проект в Eclipse как написано в <noindex><a href="http://code.google.com/webtoolkit/gettingstarted.html#NewEclipse">документации по GWT</a></noindex>. Запустите Eclipse и кликните в меню File -&gt; Import. В появившемся окне выберите пункт &#8216;Existing Projects into Workspace&#8217;, укажите путь к файлу .project в следующем окне. После этого вы должны увидеть ваш GWT проект:</p>
<p><noindex><a href="http://photos1.blogger.com/blogger2/2623/301412589031540/1600/eclipse.jpg"><img src="http://photos1.blogger.com/blogger2/2623/301412589031540/400/eclipse.jpg" src="http://photos1.blogger.com/blogger2/2623/301412589031540/400/eclipse.jpg" alt="" border="0" /></a></noindex><br />
Создадим класс JSONRequester и опишем следующие метод:</p>
<p><code lang="JavaScript"><br />
public Widget initializeMainForm() {<br />
/*<br />
* Иницилизация и установка панели, которая будет содержать<br />
* поисковую форму и вывод результата<br />
*/</code></p>
<p>FocusPanel fpn = new FocusPanel();<br />
Grid gd = new Grid(1,2);</p>
<p>b1.setText(”Search”);<br />
b1.addClickListener(new SearchButtonClickListener());</p>
<p>gd.setWidget(0, 0, txtBox);<br />
gd.setWidget(0, 1, b1);</p>
<p>gdOut.setWidget(0,0,gd);</p>
<p>gdOut.setBorderWidth(1);<br />
gdOut.setWidth(”500px”);</p>
<p>childGrid.setCellPadding(0);<br />
childGrid.setCellSpacing(0);<br />
childGrid.setWidth(”490px”);</p>
<p>fpn.add(gdOut);</p>
<p>return fpn;<br />
}</p>
<p>Как вы видете создается элемент <noindex><a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.user.client.ui.FocusPanel.html">FocusPanel</a></noindex>, затем мы прикрепляем эелемент <noindex><a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.user.client.ui.Grid.html">Grid</a></noindex>(Сетка), на этой сетке располагаем все нужные элементы. В обработчике клика по кнопке создается класс SearchButtonClickListener, которые будет содержать следующие строки:</p>
<p><code lang="JavaScript"><br />
private class SearchButtonClickListener implements ClickListener {</code></p>
<p>public void onClick(Widget sender) {<br />
/*<br />
* Когда пользователь нажимает кнопку мы получаем URL.<br />
*/<br />
itemNumber = 0;<br />
doFetchURL();<br />
}</p>
<p>private void doFetchURL() {<br />
/*<br />
* Получаем URL и вызываем обработчик<br />
*/<br />
b1.setText(”Searching …”);<br />
if (!HTTPRequest.asyncGet(DEFAULT_SEARCH_URL + “?tosearch=” + txtBox.getText(),</p>
<p>new JSONResponseTextHandler())) {</p>
<p>b1.setText(”Search”);<br />
}<br />
}<br />
}</p>
<p>Этот класс содержит метод doFetchURL(), с помощью которого находится URL и вызывается класс JSONResponseTextHandler() для выполнения операций над JSON документом:</p>
<p><code lang="JavaScript"><br />
private class JSONResponseTextHandler implements ResponseTextHandler {</code></p>
<p>public void onCompletion(String responseText) {<br />
/*<br />
* После того, как полученны данные в формате JSON мы<br />
* обрабатываем их и выводим результат<br />
*/ </p>
<p>JSONObject jsonObject;<br />
try {<br />
jsonObject = JSONParser.parse(responseText);<br />
displayJSONObject(jsonObject);</p>
<p>} catch (JSONException e) {</p>
<p>}</p>
<p>b1.setText(”Search”);</p>
<p>}</p>
<p>private void displayJSONObject(JSONObject jsonObject) {<br />
/*<br />
* Очищаем Grid(сетку) и заполняем новыми результатами<br />
*/</p>
<p>childGrid.clear();<br />
requestChildrenGrid(jsonObject);<br />
gdOut.setWidget(1,0,childGrid);</p>
<p>}</p>
<p>private void requestChildrenGrid(JSONValue jsonValue){<br />
/*<br />
* Заполнение Grid(сетки)<br />
*/</p>
<p>JSONObject jsonObject;<br />
if(jsonValue.isArray() != null){<br />
for(int i = 0; i < jsonValue.isArray().size();i++){<br />
requestChildrenGrid(jsonValue.isArray().get(i));<br />
childGrid.setWidget(itemNumber,0,new HTML(”<br />
<hr />”));<br />
childGrid.setWidget(itemNumber,1,new HTML(”<br />
<hr />”)); </p>
<p>itemNumber++;<br />
int resizeNumber = itemNumber + 1;<br />
childGrid.resize(resizeNumber,2);<br />
}<br />
} else {</p>
<p>if ((jsonObject = jsonValue.isObject()) != null) {<br />
String[] keys = jsonObject.getKeys();</p>
<p>for (int i = 0; i < keys.length; ++i) {<br />
String key = keys[i];<br />
childGrid.setWidget(itemNumber,0,new HTML(”<b>”+ key +”:”));<br />
childGrid.setWidget(itemNumber,1,new HTML(jsonObject.get(key).toString()));<br />
requestChildrenGrid(jsonObject.get(key));</b></p>
<p>itemNumber++;<br />
int resizeNumber = itemNumber + 1;<br />
childGrid.resize(resizeNumber,2);<br />
}<br />
} else if (jsonValue != null) {<br />
//</p>
<p>} else {<br />
//<br />
}</p>
<p>}<br />
}</p>
<p>} </p>
</p>
<p>Все эти методы из файла JSON.java гугловкого примера <noindex><a href="http://code.google.com/webtoolkit/documentation/examples/jsonrpc/">JSON RPC</a></noindex>.  Метод requestChildrenGrid(JSONValue jsonValue) разбивает JSON документ на ключи и значения, ключи обрамляются тэгами &#8220;&lt;B&gt;&#8221;и прикрепляются к Grid(сетке), которая в свою очередь прикрепляется к FocusPanel. И наконец, в файле PHPJSON.java мы выводим результат на главную панель:</p>
<p><code lang="JavaScript">public void onModuleLoad() {<br />
/*<br />
* Для красоты используем TabPanel<br />
*/<br />
TabPanel tp = new TabPanel();<br />
JSONRequester myJson = new JSONRequester();</code></p>
<p>tp.add(myJson.initializeMainForm() ,”Corporate Directory”);</p>
<p>tp.selectTab(0);</p>
<p>RootPanel.get().add(tp);<br />
}</p>
<p>Вот как должно выглядеть приложение в результате:</p>
<p><noindex><a href="http://photos1.blogger.com/blogger2/2623/301412589031540/1600/web.jpg"><img src="http://photos1.blogger.com/blogger2/2623/301412589031540/400/web.jpg" src="http://photos1.blogger.com/blogger2/2623/301412589031540/400/web.jpg" alt="" border="0" /></a></noindex><br />
Вы можете скачать код клиентской и серверной части <noindex><a href="http://angel.hurtado.googlepages.com/proyecto.tgz">отсюда</a></noindex>. Надеюсь, это небольшой пример вам помог.
</p>
</div>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2007. |
	  <a href="http://www.ajaxplanet.ru/google-web-toolkit-manual/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/google-web-toolkit-manual/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/technology/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/company/google/" title="Просмотреть все записи в рубрике &laquo;Google&raquo;" rel="category tag">Google</a>, <a href="http://www.ajaxplanet.ru/category/technology/java/" title="Просмотреть все записи в рубрике &laquo;Java&raquo;" rel="category tag">Java</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/google-web-toolkit-manual/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Обзор ajax-фреймворков</title>
		<link>http://www.ajaxplanet.ru/obzor-ajax-freymvorkov/</link>
		<comments>http://www.ajaxplanet.ru/obzor-ajax-freymvorkov/#comments</comments>
		<pubDate>Wed, 02 Aug 2006 11:45:12 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[atlas]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[ASP.NET-AJAX]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Open-Rico]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Yahoo-Ajax-Library]]></category>
		<category><![CDATA[Zimbra-Kabuki-Ajax-Toolkit]]></category>
		<category><![CDATA[фреймворк]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/obzor-ajax-freymvorkov/</guid>
		<description><![CDATA[На InfoWorld появился обзор 6 ajax-фреймворков: Dojo Zimbra Kabuki Ajax Toolkit Google Web Toolkit Open Rico and Prototype Microsoft Atlas Yahoo Ajax Library Наверное, на первый взгляд обзор покажется чрезмерно кратким и поверхностным. Но самое интересное скрыто в скринкастах. Там находятся достаточно подробные демонстрации каждого фреймворка. Демонстрация того же MS Atlas действительно понравилась. Думаю, для [...]]]></description>
			<content:encoded><![CDATA[<p>На InfoWorld появился <noindex><a href="http://ww6.infoworld.com/products/print_friendly.jsp?link=/article/06/07/31/31FEajax_3.html">обзор 6 ajax-фреймворков</a></noindex>:</p>
<ul>
<li>Dojo</li>
<li>Zimbra Kabuki Ajax Toolkit</li>
<li>Google Web Toolkit</li>
<li>Open Rico and Prototype</li>
<li>Microsoft Atlas</li>
<li>Yahoo Ajax Library</li>
</ul>
<p>Наверное, на первый взгляд обзор покажется чрезмерно кратким и поверхностным. Но самое интересное скрыто в скринкастах. Там находятся достаточно подробные демонстрации каждого фреймворка. Демонстрация того же MS Atlas действительно понравилась. Думаю, для составления первого мнения о лидерах это будет полезно.</p>
<p>ps <span id="ctl00_ContentPlaceHolder1_ClaimDetails1_lClaim">f4ee11f1-057e-4d13-b671-e9c7b775cd24</span><span id="ctl00_ContentPlaceHolder1_ClaimDetails1_lClaim" /></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/obzor-ajax-freymvorkov/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/obzor-ajax-freymvorkov/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/technology/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/company/google/" title="Просмотреть все записи в рубрике &laquo;Google&raquo;" rel="category tag">Google</a>, <a href="http://www.ajaxplanet.ru/category/technology/java/" title="Просмотреть все записи в рубрике &laquo;Java&raquo;" rel="category tag">Java</a>, <a href="http://www.ajaxplanet.ru/category/company/microsoft/" title="Просмотреть все записи в рубрике &laquo;Microsoft&raquo;" rel="category tag">Microsoft</a>, <a href="http://www.ajaxplanet.ru/category/technology/ruby-on-rails/" title="Просмотреть все записи в рубрике &laquo;Ruby on Rails&raquo;" rel="category tag">Ruby on Rails</a>, <a href="http://www.ajaxplanet.ru/category/company/yahoo/" title="Просмотреть все записи в рубрике &laquo;Yahoo&raquo;" rel="category tag">Yahoo</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/atlas/" title="Просмотреть все записи в рубрике &laquo;atlas&raquo;" rel="category tag">atlas</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/obzor-ajax-freymvorkov/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gliffy &#8212; онлайновый редактор схем и диаграмм</title>
		<link>http://www.ajaxplanet.ru/gliffy-online-diagram-editor/</link>
		<comments>http://www.ajaxplanet.ru/gliffy-online-diagram-editor/#comments</comments>
		<pubDate>Mon, 03 Apr 2006 07:28:16 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Схемы и диаграммы]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Gliffy]]></category>
		<category><![CDATA[диаграммы]]></category>
		<category><![CDATA[онлайновый-офис]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/gliffy-online-diagram-editor/</guid>
		<description><![CDATA[<p><a href="http://www.gliffy.com/">http://www.gliffy.com/</a></p>
<p>Не так давно я подал заявку на участие в программе бета-тестирования <a href="http://www.gliffy.com/">Gliffy</a>, онлайнового редактора, построенного на Flash и предназначенного для построения схем, графиков и диаграмм. Думаю, тем, кто использовал <a href="http://www.microsoft.com/Rus/Office/Visio/">Visio</a>, не стоит объяснять, что же это такое. На самом деле, даже внешне <span lang="RU" /><a href="http://www.gliffy.com/">Gliffy</a><span lang="RU" /> очень напоминает <a href="http://www.microsoft.com/Rus/Office/Visio/">Visio</a> – практически та же структура окна, рабочее поле с координатной сеткой, панель с наборами графических примитивов слева… Справа -- панель со свойствами документа, списком версий и адрессом тех. поддержки. Панели инструментов сворачиваются.</p>
<p></p>
<div style="text-align: center"><img alt="Gliffy.com. Edit diagram" id="image70" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/04/gliffy_diagramm_sm.png" /></div>]]></description>
			<content:encoded><![CDATA[<p><noindex><a href="http://www.gliffy.com/">http://www.gliffy.com/</a></noindex>Не так давно я подал заявку на участие в программе бета-тестирования <noindex><a href="http://www.gliffy.com/">Gliffy</a></noindex>, онлайнового редактора, построенного на Flash и предназначенного для построения схем, графиков и диаграмм. Думаю, тем, кто использовал <noindex><a href="http://www.microsoft.com/Rus/Office/Visio/">Visio</a></noindex>, не стоит объяснять, что же это такое. На самом деле, даже внешне <noindex><a href="http://www.gliffy.com/">Gliffy</a></noindex> очень напоминает <noindex><a href="http://www.microsoft.com/Rus/Office/Visio/">Visio</a></noindex> – практически та же структура окна, рабочее поле с координатной сеткой, панель с наборами графических примитивов слева… Справа &#8212; панель со свойствами документа, списком версий и адрессом тех. поддержки. Панели инструментов сворачиваются.</p>
<div style="text-align: center"><img alt="Gliffy.com. Edit diagram" id="image70" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/04/gliffy_diagramm_sm.png" /></div>
<p>На самом деле, такое последовательное следование опыту Visio понятно и, пожалуй, даже похвально. Опыт создателей Visio на сегодня – 15 лет, так что попытки строить подобное приложения с нуля без оглядки на существующие примеры были бы подобны изобретению даже не велосипеда, а колеса. Кроме того, подобный класс приложений используется не слишком большой группой людей – скажем честно, пользователей текстовых процессоров и электронных таблиц минимум на порядок больше. Так что, подобное построение рабочего пространства кроме всего прочего позволяет пользователям сразу чувствовать себя как дома – знакомый интерфейс, знакомые элементы и т.д.</p>
<p>Процесс построения схем также очень похож на Visio: вы просто переносите на рабочее поле необходимые элементы и соединяете их коннекторами. Как и в Visio, вы можете перетаскивать элементы куда угодно, коннекторы, связывающие данный элемент с другими, автоматически последует за ним. Правда, при малейшем движении элемента автоматически меняют свое расположение все коннекторы, а не только те, которые ведут к передвигаемому элементу. Это, скажем честно, достаточно сильно раздражает, когда только что вручную передвинул половину связующих линий…</p>
<p>Сейчас видно, что Gliffy пока действительно только бета: работает он действительно хорошо, но возможностей пока мало. Мало графических примитивов, нет возможности импорта готовых диаграмм, экспортировать готовые схемы можно либо в SVG, либо в JPG.</p>
<div style="text-align: center"><img alt="Gliffy.com. Publish Dialog" id="image72" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/04/gliffy-publish-dialog.png" /></div>
<div style="text-align: center"><img alt="Gliffy.com. Export" id="image71" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/04/gliffy_publish.png" /></div>
<p>Одна беда… ну не работают пока экспорт и публикация с кириллицей! Т.е. редактирование проходит прекрасно. А вот потом… Потом сохранить диаграмму с кириллицей можно разве что скриншотом. И если недостатки импорта и экспорта являются действительно серьезными, то за наборы элементов можно не беспокоиться – это явно временный недостаток, который наверняка скоро будет устранен разработчиками.</p>
<div style="text-align: center"><img alt="Gliffy.com. Publish result" id="image73" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/04/gliffy_publish_result.png" /></div>
<p>На самом деле, как и практически со всеми онлайновыми приложениями, просто функциональность – это не то, ради чего стоит работать в Gliffy. Обязательным пунктом для всех приложений Web 2.0 стала возможность совместной работы. Что ж, тут возможности Gliffy на уровне.</p>
<div style="text-align: center"><img alt="Gliffy.com. Collaboration" id="image74" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/04/gliffy-collaboration.png" /></div>
<p>Для совместной работы над схемой достаточно отправить приглашение. Вы просто вводите адреса пользователей, которым хотите отослать приглашения, об остальном же позаботиться Gliffy. Можно и опубликовать схему. В таком случае, Gliffy сообщает вас несколько адресов, по которым будут находиться постоянно обновляемые jpg-и с вашими схемами. Ведется контроль версий.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/gliffy-online-diagram-editor/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/gliffy-online-diagram-editor/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/technology/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/technology/flash/" title="Просмотреть все записи в рубрике &laquo;Flash&raquo;" rel="category tag">Flash</a>, <a href="http://www.ajaxplanet.ru/category/technology/java/" title="Просмотреть все записи в рубрике &laquo;Java&raquo;" rel="category tag">Java</a>, <a href="http://www.ajaxplanet.ru/category/office/" title="Просмотреть все записи в рубрике &laquo;Office&raquo;" rel="category tag">Office</a>, <a href="http://www.ajaxplanet.ru/category/office/shemyi-i-diagrammyi/" title="Просмотреть все записи в рубрике &laquo;Схемы и диаграммы&raquo;" rel="category tag">Схемы и диаграммы</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/gliffy-online-diagram-editor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ThinkFree Write</title>
		<link>http://www.ajaxplanet.ru/thinkfree-write/</link>
		<comments>http://www.ajaxplanet.ru/thinkfree-write/#comments</comments>
		<pubDate>Fri, 24 Mar 2006 07:17:21 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Текстовые редакторы]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[ThinkFree-Office]]></category>
		<category><![CDATA[онлайновый-офис]]></category>
		<category><![CDATA[текстовый-редактор]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/thinkfree-write/</guid>
		<description><![CDATA[ThinkFree Office Online целиком и полностью написан на Java. Его создатели ставили своей целью создать полноценную замену MS Office. Уже сейчас в комплекте есть текстовый редактор, электронные таблицы, программа по подготовке презентаций. Приложения даже внешне сделаны похожими на MS Office. Приложения работают с обычными офисными файлами. Их можно и создавать тут, и загружать готовые с [...]]]></description>
			<content:encoded><![CDATA[<p>ThinkFree Office Online целиком и полностью написан на Java. Его создатели ставили своей целью создать полноценную замену MS Office. Уже сейчас в комплекте есть текстовый редактор, электронные таблицы, программа по подготовке презентаций. Приложения даже внешне сделаны похожими на MS Office.</p>
<p><img id="image47" alt="ThinkFree Office" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/03/thinkfree_office_online.jpg" /><br />
<img alt="ThinkFree Office. Context menu" id="image39" src="/wp-content/uploads/2006/03/thinkfree_office_online_document_context_menu1.png" /></p>
<p>Приложения работают с обычными офисными файлами. Их можно и создавать тут, и загружать готовые с десктопа. Импорт во всех протестированных документах прошел без нареканий. Единственные замечания к отображению русскоязычных документов – переносы. Их ThinkFree Office ставит только по одному ему известным принципам.</p>
<p><img alt="ThinkFree Write. " id="image36" src="/wp-content/uploads/2006/03/thinkfree_office_online_perenosy.png" /></p>
<p>Как уже говорилось, приложения написаны на Java. К сожалению, это приводит к тому, что в первый раз загрузка проходит очень долго. Честно говоря, даже не хочу представлять, сколько бы этот апплет загружался через модем. Впрочем, такие мучения ожидают пользователя только при первой загрузке – апплет кешируется и в дальнейшем запускается <em>гораздо</em> быстрее.</p>
<p><img alt="ThinkFree Write. First Launch" id="image37" src="/wp-content/uploads/2006/03/thinkfree_office_online_first_load.png" /></p>
<p>ThinkFree Office Write выглядит максимально похоже на MS Word. Внешний вид максимально скопирован, вполть до панельки Draw в левом нижнем углу. Функций естественно меньше, чем в Word, но, поверьте, их и тут более, чем достаточно. Что особенно приятно, прекрасно работает автосохранение. Есть и экспорт в PDF. Естественно, бесплатно и прекрасно работает. Другой вопрос, что из-за проблем с переносами использовать такой файл будет тяжело… Кроме того, ThinkFree поддерживает публикацию в блоги.</p>
<p><img alt="ThinkFree Write" id="image35" src="/wp-content/uploads/2006/03/thinkfree_office_online_edit_document.png" /></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/thinkfree-write/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/thinkfree-write/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/technology/java/" title="Просмотреть все записи в рубрике &laquo;Java&raquo;" rel="category tag">Java</a>, <a href="http://www.ajaxplanet.ru/category/office/" title="Просмотреть все записи в рубрике &laquo;Office&raquo;" rel="category tag">Office</a>, <a href="http://www.ajaxplanet.ru/category/office/text-processors/" title="Просмотреть все записи в рубрике &laquo;Текстовые редакторы&raquo;" rel="category tag">Текстовые редакторы</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/thinkfree-write/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->