Package org.vietspider.ui.widget

Source Code of org.vietspider.ui.widget.ExpandMenu

/***************************************************************************
* Copyright 2001-2003 The VietSpider Studio        All rights reserved.  *
* Please look at license.txt in info directory for more license detail.   *
**************************************************************************/
package org.vietspider.ui.widget;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.ExpandBar;
import org.eclipse.swt.widgets.ExpandItem;
import org.vietspider.ui.widget.action.ExpandSelectionEvent;
import org.vietspider.ui.widget.action.ExpandSelectionListener;
import org.vietspider.ui.widget.action.HyperlinkAdapter;
import org.vietspider.ui.widget.action.HyperlinkEvent;

/**
* Created by VietSpider Studio
* Author : Nhu Dinh Thuan
*          nhudinhthuan@yahoo.com
* Feb 16, 2003
*/
public class ExpandMenu extends Composite {

  private ExpandBar bar;

  protected List<ExpandSelectionListener> listeners;

  public ExpandMenu(Composite comp, int style){
    super(comp, style);
    setLayout(new FillLayout());
    bar = new ExpandBar(this, SWT.V_SCROLL);
    bar.setBackground(new org.eclipse.swt.graphics.Color(getDisplay(), 255, 255, 255));
    bar.setSpacing(7);       
    bar.setCursor(new Cursor(getDisplay(), SWT.CURSOR_HAND));
    bar.setFont(UIDATA.FONT_8VB);
    listeners = new ArrayList<ExpandSelectionListener>();
  }

  @SuppressWarnings("hiding")
  public Composite createGroup(List<String> data){
    Composite composite = new Composite (bar, SWT.NONE);
    composite.setBackground(UIDATA.BCOLOR)
    GridLayout gridLayout = new GridLayout(1, false);
    gridLayout.marginHeight = 5;
    gridLayout.horizontalSpacing = 8;
    gridLayout.verticalSpacing = 10;
    gridLayout.marginWidth = 5;
    composite.setLayout(gridLayout)
    Hyperlink lbl;   
    HyperlinkAdapter listener = new HyperlinkAdapter(){
      public void linkActivated(HyperlinkEvent e){
        String txtElement = e.getLabel().trim();         
        Hyperlink  h = (Hyperlink)e.getSource();
        Composite comp = h.getParent();         
        for(int i = 0; i < bar.getItemCount(); i++){
          if(bar.getItem(i).getControl() != comp) continue;
          String txtGroup = bar.getItem(i).getText().trim();          
          ExpandSelectionEvent exv = new ExpandSelectionEvent(i, h.getIndex(), txtGroup, txtElement);
          select(exv);           
          break;
        }         
      }
    };
   
    int index = 0;
   
    for(String ele : data){
      lbl = new Hyperlink(composite, SWT.LEFT);
      lbl.setIndex(index);
      lbl.addHyperlinkListener(listener);
      lbl.setFont(UIDATA.FONT_8V);
      lbl.setBackground(UIDATA.BCOLOR)
      lbl.setForeground(UIDATA.FCOLOR);
      GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
      lbl.setLayoutData(gridData);
      lbl.setText(ele.trim());
     
      index++;
    }  
    return composite;
  }
 
  public void createExpandItem(String title, Composite composite) {
    ExpandItem item = new ExpandItem(bar, SWT.NONE, bar.getItemCount());  
//  if(imgGroup != null) item.setImage(imgGroup);
    item.setText(title);
    item.setHeight(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
    item.setControl(composite);
  }
 
  public void removeAll(){   
    while(bar.getItemCount() > 0){
      Composite composite = (Composite)bar.getItem(0).getControl();     
      if(composite != null ) composite.dispose();
      bar.getItem(0).dispose();
    }  
    bar.layout();
  }
 
//  public String getTab() { return tab; }

//event
  public void fireSelectionEvent(ExpandSelectionEvent e) {
    synchronized(listeners)  {
      for(int i = 0; i < listeners.size(); i++){
        try{
          ExpandSelectionListener listener = listeners.get(i);        
          listener.select(e);      
          break;
        }catch(Exception exp){                 
        }      
      }
    }
  }
  public void addSelectionListener(ExpandSelectionListener listener) {     
    synchronized(listeners) {
      listeners.remove(listener);
      listeners.add(listener);
    }
  }
 
  public void removeSelectionListener(ExpandSelectionListener listener) {
    synchronized(listeners) {
      listeners.remove(listener);
    }
  }
 
  public void select(ExpandSelectionEvent ev) {   
    fireSelectionEvent(ev);   
  }

  public ExpandBar getBar() {return bar; }

//  public Image getImageDelete() { return imageDelete; }

}

TOP

Related Classes of org.vietspider.ui.widget.ExpandMenu

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.