powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / JAVA in FORMS
5 сообщений из 5, страница 1 из 1
JAVA in FORMS
    #37207634
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Есть Java класс. Как можно ли в Forms использовать методы данного класса?
Если да то как?
...
Рейтинг: 0 / 0
JAVA in FORMS
    #37210401
Jacobs Kaive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сайте oracle посмотри Forms_Demos_10gr2
там есть примеры
...
Рейтинг: 0 / 0
JAVA in FORMS
    #37211552
Maratus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jacobs Kaive,

Пример с металинка для Forms 6

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
The get_file_name built-in of forms  is currently not implemented  for  Web. 
You could create a Javabean and use it to implement  this  functionality 
 for  WebForms.

Attached below are the source code of JavaBean & the Wrapper  Class   for  the Bean.

CREATING JAVABEAN 
=================

The Bean uses the following methods and Classes
-----------------------------------------------

PropertyChangeSupport  for  the file_name property.

java.awt.FileDialog  class  is used to show the File Dialog.

firePropertyChange method is called to pass a PropertyChange event to all 
classes which are registered as listeners to  this   class .

addPropertyChangeListener is used by other classes to register themself as 
PropertyChangeListener  for   this   class .

 import  java.awt.*;
 import  java.beans.*;
 
   public   class  FDialog  extends  Canvas  {
   private  String file_name ;
   private  PropertyChangeSupport pcs;

 public  FDialog() {
  file_name = "";
  pcs =  new  PropertyChangeSupport( this );
  }

   public   void  set_file_name()
  {
  Frame frame =  new  Frame("Sample");
  java.awt.FileDialog  OpenDlg =  new  FileDialog(frame, "Open ", java.awt.FileDialog.LOAD);
  OpenDlg.setFile("*.*");
  OpenDlg.show();
  String old_file_name = file_name;
  file_name=OpenDlg.getDirectory() + OpenDlg.getFile();
  pcs.firePropertyChange("file_name", old_file_name, file_name);
  }

   public   void  addPropertyChangeListener(PropertyChangeListener pcl)
  {
  pcs.addPropertyChangeListener(pcl);
  }

   public   void  removePropertyChangeListener(PropertyChangeListener pcl)
  {
  pcs.removePropertyChangeListener(pcl);
  }
  }

CREATING WRAPPER  FOR  JAVABEAN 
=============================

The Wrapper  class   implements  the PropertyChangeListener  interface .
It registers itself as a PropertyChangeListener  for  the Bean  class .
The propertyChange method is executed in response to a PropertyChange event.
The propertyChange method dispatches a CustomEvent to the Handler.
 This  event is then trapped in forms using a when-custom-item-event trigger.

 package  oracle.forms.demos;
 import  java.awt.*;
 import  java.awt.event.*;
 import  java.beans.*;
 import  oracle.forms.properties.ID;
 import  oracle.forms.handler.IHandler;
 import  oracle.forms.ui.CustomEvent;
 import  oracle.forms.ui.VBean;

 public   class  FDialogPJC  extends  VBean  implements  PropertyChangeListener{
     private  Component mComp;
     private  IHandler mHandler;
     private   static   final  ID SHOWFILEDIALOG   = ID.registerProperty("showfiledialog");
     private   static   final  ID FILENAME         = ID.registerProperty("filevalue");
     private   static   final  ID FILECHANGEEVENT  = ID.registerProperty("filechangeevent");


   public  FDialogPJC() {
     super ();
     try {

      ClassLoader cl = getClass().getClassLoader();
      Object obj = Beans.instantiate(cl,"oracle.forms.demos.FDialog");
      mComp = (Component)obj;
      mComp.setVisible(true);
      mComp.setEnabled(true);
      ((oracle.forms.demos.FDialog)mComp).addPropertyChangeListener( this );

      // add the component to this 

      add("Center",mComp);
    }
     catch (Exception e){
      e.printStackTrace();
    }
  }

   public   void  init(IHandler handler)
  {
     super .init(handler);
    mHandler = handler;
  }

   public   boolean  setProperty(ID pid, Object value)
  {

     if (pid ==SHOWFILEDIALOG) {
      ((oracle.forms.demos.FDialog)mComp).set_file_name();
       return  true;
                             }
     else 
       return   super .setProperty(pid,value);
  }

   public   void  propertyChange(PropertyChangeEvent pce) {
  String new_file_name=(String)pce.getNewValue();
   try  {
        mHandler.setProperty(FILENAME, new_file_name);
      }
   catch (Exception e) {}
  CustomEvent ce =  new  CustomEvent(mHandler, FILECHANGEEVENT );
  dispatchCustomEvent(ce);
  }

}


Create a Form with a text_item and bean area. The text_item should be named
FILE_NAME and have a length of  255  chars. The Bean_Area should be named
FDIALOG_BEAN and have the implementation  class  set to oracle.forms.demos.FDialogPJC

Code to bring up the FileDialog 
===============================

declare
       FDialog_Bean        Item;
begin
       FDialog_Bean:=find_item('FDIALOG_BEAN');

         /*  FDIALOG_BEAN is the name of the Bean item */
 
       if  NOT id_null(FDialog_Bean) then
           set_custom_item_property(FDialog_Bean,'showfiledialog',  1 );

        /* This invokes the setProperty method of the Bean Wrapper using  
           SHOWFILEDIALOG as ID. The wrapper in turn calls the set_file_name 
           method of the Bean.
        */

      end  if ;
end;


Code to handle the PropertyChangeEvent  ( when-custom-item-event trigger 
======================================              attached to the Bean )

declare

        FDialog_Bean        Item;
        BeanValListHdl ParamList;
	paramType      Number;
	EventName      VarChar2( 20 );
        file_name      varchar2( 255 );
Begin
	FDialog_Bean   := find_item('FDIALOG_BEAN');
	BeanValListHdl := get_parameter_list(:system.Custom_Item_Event_Parameters);
	EventName      := :SYSTEM.Custom_Item_Event;
 
	 if  (EventName = 'filechangeevent') then
	   get_parameter_attr(BeanValListHdl,'filevalue',ParamType, file_name);

          /* file_name variable contains the file_name */
          :file_name := file_name;
        end  if ;
end;
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
JAVA in FORMS
    #39785954
Добрый день.

У меня есть 2 класса от VBean.

Могу ли я как-нибудь обратиться из одного в другой?
По имени, как к ним обращаются формы.
Что-нибудь из серии
AbstractBean bean = AbstractBean.getBean("BEAN.DOC_DS");
bean.setCustomProperty("prop", "value");

Т.к. бин по идее инициализирован уже до этого.
...
Рейтинг: 0 / 0
JAVA in FORMS
    #39786123
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю

Но всегда можно общаться через Forms PL/SQL. Один instance вызывает event в PL/SQL, этот event дергает другой instance.


И сомневаюсь, что напрямую возможно. Для этого тебе нужно получить instance/экземпляр одного JavaBean и как-то передать его во второй. Но то, что я вижу в reference:
GET_ITEM_INSTANCE_PROPERTY - не вижу возможности получить instance class'а назначенного в JavaBean item
SET_ITEM_CUSTOM_PROPERTY - аналогично, только типы number, varchar2, date
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / JAVA in FORMS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]