четверг, 17 декабря 2015 г.

Использование Drag and Drop функциональности в ADF(Using Drag and Drop in ADF)

ADF Faces framework поддерживает возможность перетаскивания элементов на странице из одного места, в другое. Например перенос строки из одной таблицы в другую, перемещение компонентов на странице или копирование значений из одних объектов в другой.

ADF Faces поддерживает следующие сценарии:
  • Перемещение  значения атрибута из одного экземпляра компонента и копирование в другой. Например, пользователь может перенести данные из outputText в inputText .
  • Перемещение значения одного объекта в другой объект так, что он становится значением другого объекта.
  • Перемещение объекта из одной коллекции в другую.
  • Перемещение компонента из одной части страницы в другую.
  • Перемещения в компоненте calendar
  • Перемещения компонента  из или в  panelDashboard .
  • Перемещения маркера в DVT графиках для изменения значений.
  • Перемещение объекта из диаграммы Gantt в другой компонент.
  • Прочие перемещения в DVT

воскресенье, 6 сентября 2015 г.

Использование JSTL в ADF (Using JSTL in ADF )

Добрый день. Часто, работая с jsf фрагментами и jspx страницами не хватает стандартной функциональности. JavaServer Pages Standard Tag Library (JSTL) представляет часть дополнительных функций:

JavaServer Pages Standard Tag Library (JSTL) — расширение спецификации JSP, добавляющее библиотеку JSP тегов для общих нужд, таких как разбор XML данных, условная обработка, создание циклов и поддержка интернационализации


Тэги JSTL делятся на 5 категорий:

   Основные тэги:
  • Общего назначения: <c:out>, <c:set>, <c:remove>, <c:catch>
  • Условия: <c:if>, <c:choose>, <c:when>, <c:otherwise>
  • Относящиеся к URL: <c:import>, <c:url>, <c:redirect>, <c:param>
  • Итерации: <c:forEach>, <c:forTokens>

воскресенье, 24 мая 2015 г.

Использование MetaDataServices (MDS) в ADF (Using MetaDataServices in ADF)

Давным давно, я писал о ADF Security(Использование ADF Security в Oracle JDeveloper 12c ). 
После той статьи, я хотел рассказать о кастомизации приложения для пользователей, но забыл)
Исправляюсь : )
В этой статье я расскажу как кастомизировать и персонализировать наше приложение.  То есть сделаю так, что бы каждый отдельный пользователь приложения мог настроить форму под себя. Для этого нужно выполнить несколько  пунктов:
  1. Создать кастомизационные классы
  2. Включить кастомизацию в приложении
  3. Прописать кастомизационные файлы в  adf-config.xml  и при необходимости установить ограничения для кастомизации
Для кастомизации в ADF используется MetaDataServices (MDS). MDS  -  это хранилище, в котором можно хранить множество  метаданных. Например :
  • Взаимодействие с пользвователем (наш случай это кастомизация компонентов)
  • Управление бизнесс процесами (данные связанные с BPEL и BPM)
  • Конфигурационные файлы 
  • Веб сервисы (WSDL файлы, XML схемы, трансформации)

Более подробно о MDS можно прочитать здесь: http://www.oracle.com/technetwork/developer-tools/jdev/metadataservices-fmw-11gr1-130345.pdf

Приступим.

1.Создайте  кастомизационный файл (Java Class).


Расшарьте его классом oracle.mds.cust.CustomizationClass



пятница, 15 мая 2015 г.

Взаимодействие с данными в Oracle MAF(ADF Mobile). Часть 1. Использование SOAP-XML Web сервисов ( Using SOAP-XML Web Services in Oracle MAF)

Любое приложение(даже мобильное) всегда работает с данными.
Mobile Application Framework поддерживает несколько способов взаимодействия с данными. В этой статье я хочу рассказать, как работать с данными при помощи сервисов.

В JDeveloper доступна работа с SOAP(XML формат) и REST(XML и JSON) web сервисами.


Специалисты в области Oracle MAF советуют использовать REST-JSON сервисы, так как они просты в создании и использовании. Так же   JSON  формат  считается более эффективным при передаче данных по сети, а для мобильных технологий это считается важным критерием.

вторник, 28 апреля 2015 г.

Вызов хранимых процедур и функций в JDeveloper 12c

Доброго времени суток. При разработке ADF проектов,  очень редко можно обойтись без вызова хранимых процедур и функций из базы. JDeveloper не имеет plug&play компонентов для работы с ними. Сегодня я хочу показать вам  как  это можно сделать.

1. Создайте в БД функцию складывающую два числа

CREATE OR REPLACE FUNCTION SUMMAB
    (
      A IN NUMBER
    , B IN NUMBER
    ) RETURN NUMBER AS
    BEGIN
      RETURN  A + B;
    END SUMMAB;


2.  Откройте Application Module Class у вашего Application Module



Если  у вас отсутствует этот класс,  сгенерируйте его, как указано на картинках ниже 



суббота, 25 апреля 2015 г.

Значок веб-страницы(favicon) и иконка для закладок в JDeveloper 12c

Favicon (от англ. FAVorite ICON -  «значок для избранного»)  - значок веб-страницы. Отображается браузером во вкладке перед названием страницы, а также в качестве картинки рядом с закладкой и  во вкладках .

Начиная с 11.1.2.x версии у тэга   <af:document>  появились атрибуты  smallIconSource  и largIconSource (тег <af:document> используется в jspx страницах).
 
smallIconSource - атрибут, для указания favicon. В необходимо указать адрес на небольшой значок размером 16 на 16(favicon). Если   этот атрибут не указан, браузер использует файл с именем "favicon.ico" находящийся  в корневом каталоге вашего сервера. Этот атрибут поддерживает  ввод списка файлов разделенных пробелами. Если путь к файлу определяет один слэш "/", это означает, что файл находится в корневой папке веб-приложения (т.е. "/misha.png" будет искаться в "http://www.oracle-adf.info/.../faces /misha.png "). Если путь к файлу определяет 2 cлэша "//', это означает, что файл находится в корневой папке сервера (т.е. "//misha.png" будет искаться в "http://www.oracle-adf.info/misha.png").  Как правило, используется первый в  списке файл . В противном случае, если браузер поддерживает только определенные типы файлов, то будет использоваться первый файл в списке, который поддерживает текущий браузер.

largeIconSource  - большой значок, который браузер может использовать для закладки вашей страницы. Если   этот атрибут не указан, браузер может использовать по умолчанию файл с именем  "apple-touch-icon.png". Возможные размеры  значка : 57x57 ,72 x72,129x129 пикселей.

Пример кода :
<af:document title="СуперПортал" 
 smallIconSource="/favicon.png /favicon.ico" 
 largeIconSource="/touchicon.png"> 
 <af:form> 
... 
</af:form> 
</af:document>




Если вы используете JDeveloper 11.1.1.x то вам придется использовать фасет metaContainer в тэге  <af:document>.

Пример  кода :


<af:document id="d1">
...
<f:facet name="metaContainer">
<af:outputText value="&lt;link rel='SHORTCUT ICON' href='#{facesContext.externalContext.requestContextPath}/favicon.ico'/>" id="favicon" escape="false"/>
</f:facet>
</af:document>


четверг, 16 апреля 2015 г.

Интеграция виджетов социальных сетей в Oracle ADF (Social Media Integration with Oracle ADF)

Социальные сети сети окончательно и бесповоротно влились в нашу жизнь. И теперь любой сайт имеет их виджеты. В этой небольшой статье, я хочу  объяснить как встраивать виджеты социальных сетей в ADF приложения.

Каждая крупная социальная сеть имеет раздел для разработчиков, вот ссылки на них:

Facebook
Linkedin
Twitter (кнопка "Share")
ВКонтакте(VK)
Одноклассники(ok.ru)

В этих разделах обычно находится информация,  и даже код  для встраивания  различных  виджетов. Вот часть из них :

  • Авторизация - авторизация  в соц.сети
  • Комментарии (Comments)-  виджет позволяет установить на сайт блок для комментирования
  • Запись на стене (Embedded Posts) - виджет позволяет встроить на свой сайт отдельную запись или комментарий пользователя соц.сети
  • Мне нравится(Like button) - виджет позволяет пользователям выразить отношение к статье одним кликом или поделиться ссылкой на неё с друзьями
  • Публикация (Share button) - виджет позволяет быстро разместить ссылку на материал с вашего сайта на странице в соц сети 
  • Подписка(Follow) - виджет позволяет подписаться на пользователя или группу

  Получить код для виджета очень просто, например что бы сформировать кнопку "Поделиться(Share)" в VK нужно  : выбрать стиль кнопки, текст кнопки,страницу которой необходимо поделиться( та на которой кнопка или конкретный адрес) и логотип соц сети :

четверг, 9 апреля 2015 г.

Взаимодействие с уcтройствами в Oracle MAF

Если вы прочитали предыдущую статью (Создание простого MAF ( ADF Mobile) приложения в JDeveloper 12c), то  уже научились создавать простые мобильные приложения.  Теперь давайте изучим  как  в Oracle MAF происходит взаимодействие с устройствами смартфона. 

Существует три способа взаимодействия со службами устройств:

  • Через декларативный Data Control
  • Через  MAF Java API
  • Через JavaScript API
Рассмотрим работу этих механизмов.

Декларативный Data Control 

Любое MAF приложение имеет data control с именем  DeviceFeatures.  При помощи этого data control-а можно очень легко создать формы для взаимодействия с устройствами смартфона

среда, 11 марта 2015 г.

Создание простого MAF ( ADF Mobile) приложения в JDeveloper 12c

Итак, у вас есть навык в  работе с ADF и вы решили написать для портала мобильное приложение. В этом  может помочь горячо любимый JDeveloper(в дальнейшем Jdev).  В этой статье я хочу  описать создание простого мобильного приложения  на Oracle MAF. Oracle MAF  -  это гибридный фреймворк для мобильной разработки. Он обеспечивает создание приложений как для IOS, так и для Android устройств. 

Приложение будет очень простым. Оно будет выводить местоположение на карте по  введенным  вами координаты(исходники приложения можно скачать на github: https://github.com/JealousyM/begin-maf ) . Начнем : )


Откройте JDeveloper 12c (в данный момент самая актуальная версия 12.1.3) . Если  у вас ее нет, скачайте бесплатно отсюда : http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html

 Зайдите в центр обновления JDeveloper(Help->Check for Updates)  и установитe Mobile Applicatione Framework


воскресенье, 8 февраля 2015 г.

Использование Captcha в Oracle ADF

При разработке ADF проектов часто может возникнуть  необходимость  создать регистрацию пользователей. И что бы обезопасить  эту часть проекта от ботов, используют Капчу. Капча - компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. В этой статье я хочу показать как встроить ее  в ADF проект (исходных код приложения можно скачать на github: https://github.com/JealousyM/captcha-adf ).

1. Создайте Fusion ADF приложение. В нем создайте jspx страницу со следующими компонентами:


  • inlineFrame - компонент для отображения капчи
  • 2 commandToolbarButton. Первая для обновления капчи, если она не разборчива.Вторая для обработки введенных данных.
  •  inputText  - компонент для ввода данных которые вы увидели в капче.
  •  group layout - компонент для группировки элементов страницы.