Need help writing custom Swing JComponent

Hi, I am trying to write my own version of a "comboBox" that does not have a drop-down box, and doesn't have a down-arrow icon on it. What I would really like to do is basically write a class that is a JLabel, but will accept KeyEvents and FocusEvents. Here is an example of exactly what I want, but it is written using an uneditable JTextArea(Hit the up and down arrow Keys to scroll through the options):
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.text.JTextComponent;
import java.awt.event.KeyListener;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.FocusEvent;
import java.awt.Color;
import java.awt.Font;
public class Test implements KeyListener, FocusListener
     Color colorBackgroundFocus = new java.awt.Color(240, 240, 240);
     Color colorText = new Color(0, 0, 128);
     Font fontText = new java.awt.Font("SansSerif", 1, 12);
     JTextArea jTextAreaPOPayment;
     public static void main(String[] args)
          new Test();
     * The Constructor for Test
     public Test(){
          JFrame jFrame = new JFrame("�:o)");
          jFrame.addWindowListener(new java.awt.event.WindowAdapter() {
               public void windowClosing(java.awt.event.WindowEvent e) {
                    ((JFrame)e.getComponent()).setVisible(false);
                    ((JFrame)e.getComponent()).dispose();
                    System.exit(0);
          jTextAreaPOPayment = new JTextArea();
          setUnEditableTextProperties(jTextAreaPOPayment, "jTextAreaPOPayment", "Cash", 60, 15, 10, 10);
          jFrame.getContentPane().add(jTextAreaPOPayment);
          jFrame.pack();
          jFrame.setVisible(true);
     * The Following is used to set all the properties for the JTextArea
     public void setUnEditableTextProperties(JTextComponent jTextComponent, String stringVariableName, String stringText, int intSizeX, int intSizeY,
     int intLocationX, int intLocationY){
          jTextComponent.setSize(new java.awt.Dimension(intSizeX, intSizeY));
          jTextComponent.setLocation(new java.awt.Point(intLocationX, intLocationY));
          jTextComponent.setName(stringVariableName);
          jTextComponent.setVisible(true);
          jTextComponent.setForeground(colorText);
          jTextComponent.setBackground(null);
          jTextComponent.setFont(fontText);
          jTextComponent.addFocusListener(this);
          jTextComponent.addKeyListener(this);
          jTextComponent.setEditable(false);
          jTextComponent.setText(stringText);
     * The Following is used to Cycle the Payment Types
     public void cyclePOPayment(boolean booleanUp){
          if (jTextAreaPOPayment.getText().compareTo("Cash") == 0)
               jTextAreaPOPayment.setText(booleanUp ? "Check" : "Credit");
          else if (jTextAreaPOPayment.getText().compareTo("Credit") == 0)
               jTextAreaPOPayment.setText(booleanUp ? "Cash" : "Check");
          else if (jTextAreaPOPayment.getText().compareTo("Check") == 0)
               jTextAreaPOPayment.setText(booleanUp ? "Credit" : "Cash");
     * The Following are needed to implement KeyListener Class
    public void keyTyped(KeyEvent e) {
    public void keyPressed(KeyEvent e) {
          if (e.getComponent().getName().compareTo("jTextAreaPOPayment") == 0)
               if (e.getKeyText(e.getKeyCode()).equalsIgnoreCase("Up")){
                    cyclePOPayment(true);
               else if (e.getKeyText(e.getKeyCode()).equalsIgnoreCase("Down")){
                    cyclePOPayment(false);
    public void keyReleased(KeyEvent e) {
     * The Following is needed to implement FocusListener Class
     public void focusGained(FocusEvent e) {
          if (e.getComponent().getName().compareTo("jTextAreaPOPayment") == 0){
               jTextAreaPOPayment.setBackground(colorBackgroundFocus);
               jTextAreaPOPayment.select(-1, 0);
    public void focusLost(FocusEvent e) {
          if (e.getComponent().getName().compareTo("jTextAreaPOPayment") == 0){
               jTextAreaPOPayment.setBackground(null);
}Here is what I tried to do, but I think I need to write the "fireFocusEvent" method?? I read something about tha tsomewhere, but can't find it again. I tried just implementing the focusListener and KeyListener, and that didn't work...Can someone Help me please!!
what I tried:
import javax.swing.JComponent;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.event.FocusEvent;
import java.awt.Graphics;
import java.awt.Dimension;
class ComboJLabel extends JComponent implements FocusListener, KeyListener
     String stringText;
     // The preferred size of the gauge
     int Height = 20;  
     int Width  = 20;
     public ComboJLabel(){
          this.stringText = "Test";
     public ComboJLabel(String stringText){
          this.stringText = stringText;
          this.addKeyListener(this);
          this.addFocusListener(this);
     public void keyPressed(KeyEvent e){
          System.out.println("KeyPressed");
     public void keyTyped(KeyEvent e){
          System.out.println("KeyTyped");
     public void keyReleased(KeyEvent e){
          System.out.println("KeyReleased");
     public void focusGained(FocusEvent e){
          System.out.println("Focus Gained");
     public void focusLost(FocusEvent e){
          System.out.println("Focus lost");
     public void setText(String stringNewText){
          stringText = stringNewText;
     public void paint(Graphics g){
       g.setColor(java.awt.Color.black);
       g.drawString(stringText, 3, 15);
     public Dimension getPreferredSize() {
          return new Dimension(Width, Height);
     public Dimension getMinimumSize() {
          return new Dimension(Width, Height);
import javax.swing.JFrame;
class TestComboJLabel
     public static void main(String[] args)
          JFrame jFrame = new JFrame();
          ComboJLabel comboJLabel = new ComboJLabel();
          jFrame.getContentPane().add(comboJLabel);
          jFrame.addWindowListener(new java.awt.event.WindowAdapter() {
               public void windowClosing(java.awt.event.WindowEvent e) {
                    ((JFrame)e.getComponent()).setVisible(false);
                    ((JFrame)e.getComponent()).dispose();
                    System.exit(0);
          jFrame.pack();
          jFrame.setVisible(true);
}But that didn't work! If anyone can help, or show me a good site that tells me how to, It would greatly appreciated! Thanks in advanced,
Jeff �:o)

Yeah,sorry about the length...If you just grab the first piece of code(that works BTW0, you will see Exactly what I am trying to do...I just don't want to use anything that already exists and Jerry-Rig it...I want to try and create a new JComponent, more as a learning experience than anything else.
But thanks for the response!

Similar Messages

  • Need help writing host program using LabView.

    Need help writing host program using LabView.
    Hello,
    I'm designing a HID device, and I want to write a host program using National Instrument's LabView. NI doesn't have any software support for USB, so I'm trying to write a few C dll files and link them to Call Library Functions. NI has some documentation on how to do this, but it's not exactly easy reading.
    I've written a few C console programs (running Win 2K) using the PC host software example for a HID device from John Hyde's book "USB by design", and they run ok. From Hyde's example program, I've written a few functions that use a few API functions each. This makes the main program more streamlined. The functions are; GetHIDPath, OpenHID, GetHIDInfo, Writ
    eHID, ReadHIC, and CloseHID. As I mentioned, my main program runs well with these functions.
    My strategy is to make dll files from these functions and load them into LabView Call Library Functions. However, I'm having a number of subtle problems in trying to do this. The big problem I'm having now are build errors when I try to build to a dll.
    I'm writing this post for a few reasons. First, I'm wondering if there are any LabView programmers who have already written USB HID host programs, and if they could give me some advice. Or, I would be grateful if a LabView or Visual C programmer could help me work out the programming problems that I'm having with my current program. If I get this LabView program working I would be happy to share it. I'm also wondering if there might already be any USB IHD LabView that I could download.
    Any help would be appreciated.
    Regards, George
    George Dorian
    Sutter Instruments
    51 Digital DR.
    Novato, CA 94949
    USA
    [email protected]
    m
    (415) 883-0128
    FAX (415) 883-0572

    George may not answer you.  He hasn't been online here for almost eight years.
    Jim
    You're entirely bonkers. But I'll tell you a secret. All the best people are. ~ Alice

  • I need help from Customer Support. Whatever this charge is on my credit card,

     He recibido un cargo de su tienda, que curiosamente he visto que se han hecho muchos cargos a diferentes personas bajo el mismo copncepto y tienda.Favor acreditarme dicho monto porque no he comprado nada con ustedes y ni tengo idea donde está Minesota.Este es mi cargo. 23/07/15323343GEEKSQUAD RENE00015826 RICHFIELD UUSRD$1,428.010.00 Y veo en Internet que otros clientes han hecho reclamos del mismo concepto.   Subject Author PostedGEEKSQUAD RENE00015826Care‎03-09-2015 06:30 PMGEEKSQUAD RENE00015826 Unknown ChargePriscillaQ‎12-29-2014 10:08 PMrandom 10 dollar charge from richfield MN to my ac...ChrisBurns‎07-01-2015 12:50 PMUnknown Geeksquad charge on my Credit CardHardingR‎12-01-2014 05:57 PMGeekSquad protection terms changed without being i... Lo que me hace pensar que algo anda muy mal en ese Best Buy.  Como es posible que no hayan corregido e identificado quienes están detrás de este fraude que lleva años. I need help from Customer Support.  Whatever this charge is on my credit card,jesmann‎10-05-2014 04:52 PM  

    Hola scj2000-
    Muchas gracias por visitar nuestro foro en búsqueda de una explicación al cargo que recién apareció en tu tarjeta de crédito.
    Entiendo su preocupación, ya que cualquier cargo extraño que aparece en un estado de cuenta puede ser alarmante. En este caso, el último cargo que puede recuperar usando el correo electrónico que usaste para registrarte al foro, refleja que se renovó un antivirus Kaspersky. Esta autorización nos diste cuando realizaste la compra de tu Lenovo, desde entonces se renueva automáticamente la licencia de antivirus.
    Las otras publicaciones que has leído, indican lo mismo. Un cargo que se ha hecho a la tarjeta de crédito que se presentó durante la compra con la autorización del cliente.
    Lamento mucho la confusión y espero esto aclare tu duda.
    Atentamente,

  • I need help writing a script that finds the first instance of a paragraph style and then changes it

    I need help writing a script that finds the first instance of a paragraph style and then changes it to another paragraph style.  I don't necessarily need someone to write the whole thing, by biggest problem is figuring how to find just the first instance of the paragraph style.  Any help would be greatly appreciated, thanks!

    Hi,
    Do you mean first instance of the paragraph style
    - in a chosen story;
    - on some chosen page in every text frames, looking from its top to the bottom;
    - in a entire document, looking from its beginning to the end, including hidden layers, master pages, footnotes etc...?
    If story...
    You could set app.findTextPreferences.appliedParagraphStyle to your "Style".
    Story.findText() gives an array of matches. 1st array's element is a 1st occurence.
    so:
    Story.findText()[0].appliedParagraphStyle = Style_1;
    //==> this will change a paraStyle of 1st occurence of story to "Style_1".
    If other cases...
    You would need to be more accurate.
    rgds

  • Need help writing small program!

    Hi. I'm learning Java programming, and I need help writing a small program. Please someone help me.
    Directions:
    Create a program called CerealCompare using an if-then-else structure that obtains the price and number of ounces in a box for two boxes of cereal. The program should then output which box costs less per ounce.

    class CerealCompare {
        public static void main(String[] args) {
            // your code goes here
    }Hope that helps.
    P.S. Java does not have an if-then-else statement.

  • Need Help Writing Server side to submit form via API

    Hey
    I need help writing a serverside application to submit
    information via API to a separate server.
    I have a client that uses constant contact for email
    campaigns. We want to add to her website a form taht submits the
    information needed to subscribe to her email list, to constant
    contact via API.
    FORM.asp :: (i got this one under control)
    name
    email
    and submits to serverside.asp
    SERVERSIDE.ASP
    In serverside.asp i need to have
    the API URL
    (https://api.constantcontact.com/0.1/API_AddSiteVisitor.jsp)
    username (of the constant contact account)
    password (of the constant contact account)
    name (submited from form.asp)
    email (submitted from form.asp)
    redirect URL (confirm.asp)
    Can anyone help get me going in the right direction?
    i have tried several things i found on the net and just cant
    get anyone to work correctly.
    One main issue i keep having is that if i get it to submit to
    the API url correctly - i get a success code, it doesnt redirect to
    the page i am trying to redirect to.
    ASP or ASP.NET code would be find.
    THANKS
    sam

    > This does require server side programming.
    > if you dont know what that is, then you dont know the
    answer to my question. I
    > know what i need to do - i just dont know HOW to do it.
    If you are submitting a form to a script on a remote server,
    and letting
    that script load content to the browser, YOU have no control
    over what it
    loads UNLESS there is some command you can send it that it
    will understand.
    No amount of ASP on your server is going to change what the
    remote script
    does.
    http://www.constantcontact.com/services/api/index.jsp
    they only allow their customers to see the instructions for
    the API so i
    can't search to see IF there is a redirect you can send with
    the form info.
    But posts on their support board say that there is.
    Alan
    Adobe Community Expert, dreamweaver
    http://www.adobe.com/communities/experts/

  • Need Help updating custom API Interface to VME-MXI-2

    Need Help.
    I have a custom Visual C++ 6.0 application that interfaces to the VME-MXI-2 card.
    This interface works on older machines, but when we upgrade to new PC's, the interface works, yet it appears that communication exists between the hardware board, and the PC Card appears to be working properly.
    I suspect that the drivers have a different interface, but need the interface documentation in order to verify this, can you help?
    Older machines use: PCI-MXI-2, and the driver is: C:\Windows\System32\Drivers\vvxid.sys (File version 1.2) cpright 1996-2000
    Newer machine has: PCI-MXI-2, and the driver is: C:\Windows\System32\Drivers\nipalk.sys (File version 1.61f0) cpright 2002

    Alan,
    As for reading and writing memory addresses from the VME memory map, you could use functions such as viIn8, viIn16, viIn32, viOut8, viOut16, or viOut32 in the NI-VISA API. You can find the NI-VISA Funtion help at "Start >> Programs >> National Instruments >> NI-VISA >> NI-VISA Help" for Windows. Alternativelly, the NI-VISA Programmers Reference Manual is available for download from ni.com.
    What exactly is your application that uses ACFAIL? ACFAIL is typically pretty unrealiable, and is a difficult signal to catch (especially over a bus extension like MXI-2). Basically, ACFAIL is asserted right before a total failure/shutdown of the chassis, so you have a very short window of time to detect the signal before it disappears.
    Regards,
    Greg Caesar
    App
    lications Engineer
    National Instruments

  • Need help in customizing workflow

    Hi All,
    Need your help in customizing APINVAPR workflow.
    Please help in clarifying below point.
    How APINVAPR is mapped to invoice approval process,for PO we use document type form to map the POAPPRV workflows when we customize we will map the custom workflow XXXPOAPPRV to make our workflow work.
    Similarly how will we customize APINVAPR and map the workflow, pls let me know your thoughts.
    My requirement is to customize the APINVAPR workflow and increase the escalation days, during the Invoice Approval Process/Escalate Document Approval activity escalation will happen in 5 days, i need to increase it by 60 days.
    If anyone have worked in similar requirement, please help.
    Also while downloading getting following error
    While downloading workflow APINVAPR, getting below errors
    Item type APINVAPR
    wferr:
    - 1300: Could not load.
    - 1114: Could not load from database.
    - 1115: Could not load all definitions referenced by 'APINVAPR' item type.
    - 1115: Could not load contents of 'APINVAPR' item type.
    - 1101: Could not load item types from database. FILTER=APINVAPR
    - 210: Oracle Error: ORA-01480: trailing null missing from STR bind value. SQL text: SELECT protect_level, custom_level, name, display_name, description, wf_selector, read_role, write_role, execute_role, persistence_type, to_char(persistence_days) FROM wf_item_types_vl WHERE name like :itemtype ORDER BY name
    But it was fine when i downlaod POAPPRV.
    Any one face similar kind of issues, please help.
    Thanks
    Badsha

    Hello,
    I am also getting the same error.
    WFLOAD apps/apps 0 Y DOWNLOAD file_name.wft INVADJTO
    Item type INVADJTOwferr:
    - 1300: Could not load.
    - 1114: Could not load from database.
    - 1115: Could not load all definitions referenced by 'INVADJTO' item type.
    - 1115: Could not load contents of 'INVADJTO' item type.
    - 1101: Could not load item types from database. FILTER=INVADJTO
    - 210: Oracle Error: ORA-01480: trailing null missing from STR bind value. SQ L text: SELECT protect_level, custom_level, name, display_name, description, wf_selector, read_role, write_role, execute_role, persistence_type, t o_char(persistence_days) FROM wf_item_types_vl WHERE name like :itemtype ORDE R BY name
    The item type exists in system. It is a seeded one.
    Can anyone help on this !!!
    Thanks

  • I need help in Custom Reporting

    Hi,
    i need help in auditing, SCOM 2012 R2 is deployed in 2 servers with ACS, i have 2 file server that has some shared folder in which users work on some certain document i need to have a report that i can run on certain file that will show me who access that
    file when he access what he did like (read write, delete). i don't think we have this type of capability in default report. let me know if someone can help me in that. (free/paid) i know its a bit customized. let me know if u need any more info.
    Syed Kasif

    Hi,
    As far as I know, to audit file access, we should Enable Audit Policy, and then Set up Audit System Access Control List (SACL).
    After that, we can make sure that under security event logs there are auditing logs for file access.
    Please refer to the below link for more details about auditing file access on file server:
    http://blogs.technet.com/b/mspfe/archive/2013/08/27/auditing-file-access-on-file-servers.aspx
    And for Collecting Security Events Using Audit Collection Services in Operations Manager:
    http://technet.microsoft.com/en-us/library/hh212908.aspx
    Regards,
    Yan Li
    Regards, Yan Li

  • Need help writing a query for following scenario

    Hi all, I need some help writing a query for the following case:
    One Table : My_Table
    Row Count: App 5000
    Columns of Interest: AA and BB
    Scenario: AA contains some names of which BB contains the corresponding ID. Some
    names are appearing more than once with different IDs. For example,
    AA BB
    Dummy 10
    Me 20
    Me 30
    Me 40
    You 70
    Me 50
    Output needed: I need to write a query that will display only all the repeating names with their corresponding IDs excluding all other records.
    I would appreciate any input. Thanks

    Is it possible to have a records with the same values for AA and BB? Are you interested in these rows or do you only care about rows with the same value of AA and different BB?
    With a slight modification of a previous posting you can only select those rows that have distinct values of BB for the same value of AA
    WITH t AS (
    SELECT 'me' aa, 10 bb FROM dual
    UNION ALL
    SELECT 'me' aa, 20 bb FROM dual
    UNION ALL
    SELECT 'you' aa, 30 bb FROM dual
    UNION ALL
    SELECT 'you' aa, 30 bb FROM dual
    SELECT DISTINCT aa, bb
      FROM (SELECT aa, bb, COUNT(DISTINCT bb) OVER(PARTITION BY aa) cnt FROM t)
    WHERE cnt > 1;

  • Need Help: Generate Customer Data from Prod Database

    Hi All,
    My company have an Oracle Financial System, with and old version Oracle Application 11.0.3 and Oracle Database 8.0.5. The database name PROD. This system has been use for more than 7 years and in between there were many stuff resigned without handover and therefore many records and supporting steps cannot be trace back. However the system is still keep running and updated daily.
    Recently we have a user request to generate out a list of customer company name, and their related products purchase from the database, this is because they does not have any methods to print out the list from application. Unfortunately, we do not know which tables or index is actualy storing the name of the customer and products. We have the list of below users accounts that able to log in to the database.
    PA/PA
    APPLSYS/APPS
    APPS/APPS
    ALR/ALR
    AX/AX
    AK/AK
    GL/GLRG/RG
    FA/FAHR/HR
    SSP/SSP
    HXT/HXT
    OTA/OTA
    RLA/RLA
    VEH/VEH
    QA/QA
    ICX/ICX
    AZ/AZ
    AP/AP
    AR/AR
    OE/OE
    OSM/OSM
    NSM/NSM2020
    CN/CN
    MFG/MFG
    INV/INV
    PO/PO
    BOM/BOM
    ENG/ENG
    MRP/MRP
    CRP/CRP
    WIP/WIP
    CZ/CZ
    PJM/PJM
    FLM/FLM
    MSC/MSC
    CS/CS
    CE/CE
    EC/EC
    JG/JG
    APPS/APPS
    All the reference documents is no longer exist. I am able to use SQL Plus to generate the list of tables with the command : select table_name from user_tables. Each user accounts will return different kind of table names. But still I cant locate which table that actually storing the name of the customers and products.
    Is that anybody got hands on this case before? Urgent

    We have this table: And need to unload this table data in flat file format.
    Need help with unload SQL file with these two columns:
    AMT_PAID_ORIG, AMT_PAID_ADJ
    SQL> desc flconv.claim_adj_less
    Name Null? Type
    SAK_CLAIM_ADJ_LESS NUMBER(10)
    SAK_CLAIM_ADJ NUMBER(10)
    ADJ_CLAIM_ICN NUMBER(13)
    ORIGINAL_CLAIM_ICN NUMBER(13)
    DATE_PAID_ORIG NUMBER(8)
    DATE_PAID_ADJ NUMBER(8)
    AMT_PAID_ORIG NUMBER(10,2)
    AMT_PAID_ADJ NUMBER(10,2)
    SAK_PROV_LOC NUMBER(9)
    SAK_FUND_CODE NUMBER(9)
    CHECK_SAK NUMBER(9)
    SAK_PUB_HLTH NUMBER(9)

  • Need help for Customizing Correspondence Management

    Hi,
    Could anyone provide me some documents or reference links which will be helpful for Customizing Correspondence Management in ES4?
    Many Thanks!!

    Hi Santosh,
    Sorry for the late reply.
    I have a XDP file having both static and dynamic content. I need to populate the dynamic content with some value which I will be getting from the XML which is stored in the body of the SOAP request. I want the letter to be generated dynamically (like no user selection of XML etc) because I want to avoid manual input in the correspondence management.
    Could you please let me know if the above can be achieved. If yes, could you please provide any useful stuff related to above requirement.
    Many Thanks!!!

  • Need help writing Labview Program!!!!!

    I have a labview project that needs to be finished. I was not the original creator of the program and the guy who created no longer is involved with the project and I am left to finish it. Could you make the final adjustment so I can turn this into my professor and get the final grade. Thanks! Willing to pay! Negeotiable price!!!!!!!!

    Need help completing assignment! Could anyone assist me in this project!
    Attachments:
    dial tone detection.zip ‏1253 KB

  • Need help writing a script

    I am trying to convert my prcess from DTS to SSIS. I am running this report out of SAP and then using Monarch to put into the correct form, then I am using the DTS to put it into the database on the SQL server.  I am able to get all the other info to
    move out having so much trouble here to get the plant number. The issuse is that it is on top on the page and it will change when a new plant is needed.
    Thanks for any help
    I need help wrting a script that will put that 7010 into a cloumn nnamed plant number.

    To convert from DTS packages to SSIS you can just open the DTS package in a new SSIS project (depends on target SSIS version by using SSDT or BIDS).
    The rest is mechanics how the iteration with SAP is done and may be beyond the scope of this forum.
    Arthur
    MyBlog
    Twitter

  • Need help in Custom component creation with cq

    Hi,
    I have created my own component in adobe cQ and able to drag an drop in any page. for each instance I am seeing the copy of
    component under node /content/mypage/commoncomp. If I edit the properties using design dialog  I can able to store values as
    expected.
    Need help in
    1) When I drag and drop the component it shows null for the property by deafult if I click save on edit dialog then the
    value is showing. The default value is not shown by default while drag and drop my component it requires atleast one time to
    click save from dialog using design mode
    2) I need to use the default properties of the orginal components which is root and use the duplicated properties if incase user edit the properties of duplicated component. This may be too messy.... to be more clear
    I want to use a common component in many pages but the properties of the components should be updated only when user edit it in design dialog utill then I need the page to use properties of root component.
    Thanks

    You just need to create your own version of PlumtreeTopBarView (original in com.plumtree.common.uiparts), and use CustomActivitySpace.xml to override that view with your own view. Your version would use some kidn fo logic to determine whether or not to display certain elements. TheUI Customization Guide should help quite a bit, and we have several quickstarts for overriding views you can start from.
    Is there some Help file in PT that I can reference that will enable me to find what namespace does GetRequestURL() belongs to?I would simply do a string compare. Tokenize the URL into the base address / control arguments, perhaps splitting on the "?" symbol; then tokenize the base address on the ".". You'll end up with three strings. For portal.plumtree.com, the three strings would portal, plumtree, and com. You can then use those string in the logig you add to PlumtreeTopBarView.
    David Phipps
    Plumtree Software

Maybe you are looking for