Buttons with HTML labels

, , No Comments
Collected From: http://sheikyerbouti.developpez.com/htmlbutton/htmlbutton.htm


1.    Purpose



This is a Javabean component that allow to display buttons with HTML labels





2.    The Javabean



package oracle.forms.fd;

import java.awt.*;
import java.awt.event.*;

import java.util.StringTokenizer;
import javax.swing.JButton;
import oracle.forms.ui.CustomEvent;
import oracle.forms.ui.VBean;
import oracle.forms.ui.VButton;
import oracle.ewt.button.PushButton;
import oracle.forms.handler.IHandler;
import oracle.forms.properties.ID;
import oracle.forms.properties.Property;

/**
 * A javabean to display buttons with HTML labels
 *
 * @author Francois Degrelle
 * @version 1.0
 */

public class HtmlButton  extends VBean implements ActionListener
{
  public final static ID SetLabel      = ID.registerProperty("SETLABEL"); 
  public final static ID SetBG         = ID.registerProperty("SETBACKGROUND");   
  public final static ID WBP           = ID.registerProperty("BUTTONPRESSED");   
  private IHandler  m_handler; 
  protected JButton b1  ;
 
  public HtmlButton()
  {
      super();
     b1 = new JButton("");
     b1.setActionCommand("push");
     b1.addActionListener(this);
     add(b1) ;

  }
     
  public void actionPerformed(ActionEvent e) {
        CustomEvent ce = new CustomEvent(m_handler, WBP);
        dispatchCustomEvent(ce);
    }
   
  public void init(IHandler handler)
  {
    m_handler = handler;
    super.init(handler);
  }     
 
 
  public boolean setProperty(ID property, Object value)
  {
    if (property == SetLabel)
    {
      String label = value.toString().trim();
      b1.setLabel(label);
      return true;
    }
    else if (property == SetBG)
    {
      String color = value.toString().trim();
      int r=-1, g=-1, b=-1, c=0 ;
      StringTokenizer st = new StringTokenizer(color,",");
      while (st.hasMoreTokens()) {
               c = new Integer((String)st.nextToken()).intValue()  ;
               if( (c <0) || (c > 255) ) c = 0 ;
               if( r == -1 ) r = c ;
               else if( g == -1 ) g = c ;
               else if( b == -1 ) b = c ;
             }
      b1.setBackground( new Color(r, g, b)) ;
      return true;
    }
    else
    {
     return super.setProperty(property, value);
    }
  }
 
}

 



3.    Forms configuration


Ø      Copy the htmlbutton.jar file in the /forms/java directory

Ø      Edit the /forms/server/formsweb.cfg file to add the jar file to the archive_jini variable

archive_jini=f90all_jinit.jar,……,htmlbutton.jar

 



4.    How to implement this bean in your own form


Ø      Open your form

Ø      Add a Javabean component to any block

Ø      Set its Implementation class property to : oracle.forms.fd.HtmlButton



5.    The properties that can be sent to the bean




Ø      The background color of the button


Set_Custom_Property( 'BLOC3.BEAN_ITEM',1, 'SETBACKGROUND','rgb_color' ) ;


Ø      The label


Set_Custom_Property( ‘BLOCK.BEAN_ITEM’, ‘SETLABEL’, ‘the_label’ ) ;




6.    The sample dialog



Ø      Unzip the htmlbutton.zip file

Ø      Copy the bigalert.jar file in your /forms/java/ directory

Ø      Edit your /forms/server/formsweb.cfg file

Ø      Open the HTML_BUTTON.fmb module (Oracle Forms 9.0.2)

Ø      Compile all and run the module



This dialog allows to enter the title, the question and the option list of the alert box

The code that set the button properies is located in the When-New-Form-Instance trigger

Declare
      LC$ButLabel   Varchar2(256) ;
Begin
 
  -- Set the background color --
  Set_Custom_Property( 'BLOC3.BEAN',1, 'SETBACKGROUND','143,161,253' ) ;
 
  -- Set the label --
  LC$ButLabel := '<html><center>'
  || '<font size=5 color=#ff0000>Co<font size=5 color=#00ff00>lo<font size=5 color=#0000ff>red</u></b></font>'
  || '<br><font size=3 color=#ffff00><b>HTML B</b><i>utton</i></font>'  ;
 
  Set_Custom_Property( 'BLOC3.BEAN',1, 'SETLABEL', LC$ButLabel ) ;
  
End ;

0 comments:

Post a Comment