package com.cari.voip.keyboard.soft.views; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.CoolBar; import org.eclipse.swt.widgets.CoolItem; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.part.ViewPart; import com.cari.voip.keyboard.soft.Activator; import com.cari.voip.keyboard.soft.image.MenuImage; import com.cari.voip.keyboard.soft.model.switchUsers.SwitchUsersSession; public class DialView extends ViewPart implements PropertyChangeListener { public static final String ID_VIEW = "com.cari.voip.keyboard.soft.views.DialView"; private Combo numCombo; private Label call; public DialView() { super(); } @Override public void createPartControl(Composite parent) { Composite comp= new Composite(parent,SWT.NONE); comp.setLayout(new GridLayout(1,true)); Composite compup= new Group(comp, SWT.NONE); compup.setLayout(new GridLayout(1,true)); compup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // combo CoolBar coolbar = new CoolBar(compup, SWT.NONE); coolbar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); CoolItem item = new CoolItem(coolbar, SWT.NONE); item.setControl(createComboView(coolbar,new GridData( GridData.FILL_HORIZONTAL))); calcSize(item); Composite compCmd= new Composite(compup,SWT.NONE); compCmd.setLayout(new GridLayout(3,true)); compCmd.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); //reset Label reset = new Label(compCmd,SWT.PUSH); //reset.setText("���"); reset.setImage(MenuImage.reset); reset.setToolTipText("����������"); reset.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); reset.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); reset.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ numCombo.setText(""); } }); Label ok = new Label(compCmd,SWT.PUSH); //reset.setText("���"); //ok.setImage(MenuImage.reset); //ok.setToolTipText("����������"); ok.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); call = new Label(compCmd,SWT.PUSH); //call.setText("����"); call.setImage(MenuImage.dial); call.setToolTipText("������������"); call.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); call.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); call.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String number = numCombo.getText(); if(number == null || number.length() == 0){ return; } SwitchUsersSession session = Activator.getSwitchUsersSession(); if(session != null){ session.input(SwitchUsersSession.INPUT_TYPE_DIAL, number); } if(numCombo.indexOf(number) == -1){ numCombo.add(number); } } }); Composite compNum= new Composite(comp, SWT.NONE); compNum.setLayout(new GridLayout(3,true)); compNum.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Label num1 = new Label(compNum,SWT.PUSH); //star.setText("*"); num1.setImage(MenuImage.num1); num1.setToolTipText("1"); num1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num1.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num1.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"1":old+"1"); } }); Label num2 = new Label(compNum,SWT.PUSH); //star.setText("*"); num2.setImage(MenuImage.num2); num2.setToolTipText("2"); num2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num2.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num2.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"2":old+"2"); } }); Label num3 = new Label(compNum,SWT.PUSH); //star.setText("*"); num3.setImage(MenuImage.num3); num3.setToolTipText("3"); num3.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num3.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num3.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"3":old+"3"); } }); Label num4 = new Label(compNum,SWT.PUSH); //star.setText("*"); num4.setImage(MenuImage.num4); num4.setToolTipText("4"); num4.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num4.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num4.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"4":old+"4"); } }); Label num5 = new Label(compNum,SWT.PUSH); //star.setText("*"); num5.setImage(MenuImage.num5); num5.setToolTipText("5"); num5.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num5.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num5.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"5":old+"5"); } }); Label num6 = new Label(compNum,SWT.PUSH); //star.setText("*"); num6.setImage(MenuImage.num6); num6.setToolTipText("6"); num6.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num6.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num6.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"6":old+"6"); } }); Label num7 = new Label(compNum,SWT.PUSH); //star.setText("*"); num7.setImage(MenuImage.num7); num7.setToolTipText("7"); num7.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num7.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num7.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"7":old+"7"); } }); Label num8 = new Label(compNum,SWT.PUSH); //star.setText("*"); num8.setImage(MenuImage.num8); num8.setToolTipText("8"); num8.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num8.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num8.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"8":old+"8"); } }); Label num9 = new Label(compNum,SWT.PUSH); //star.setText("*"); num9.setImage(MenuImage.num9); num9.setToolTipText("9"); num9.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); num9.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); num9.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"9":old+"9"); } }); Label star = new Label(compNum,SWT.PUSH); //star.setText("*"); star.setImage(MenuImage.num10); star.setToolTipText("*"); star.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); star.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); star.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"*":old+"*"); } }); Label zero = new Label(compNum,SWT.PUSH); //zero.setText("0"); zero.setImage(MenuImage.num0); zero.setToolTipText("0"); zero.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); zero.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); zero.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"0":old+"0"); } }); Label wall = new Label(compNum,SWT.PUSH); //wall.setText("#"); wall.setImage(MenuImage.num11); wall.setToolTipText("#"); wall.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); wall.setCursor(new Cursor(parent.getDisplay(),SWT.CURSOR_HAND)); wall.addMouseListener(new MouseListener(){ public void mouseDoubleClick(MouseEvent e){ } public void mouseDown(MouseEvent e){ } public void mouseUp(MouseEvent e){ String old = numCombo.getText(); numCombo.setText((old==null)?"#":old+"#"); } }); addOnlineLister(); } private Control createComboView(Composite parent, Object layoutData) { Font numFont=new Font(parent.getDisplay(),"����",18,SWT.BOLD ); numCombo = new Combo(parent, SWT.NONE); numCombo.setFont(numFont); numCombo.setLayoutData(layoutData); numCombo.addSelectionListener(new SelectionListener(){ public void widgetDefaultSelected(SelectionEvent e){ //final String num = ((Combo) e.getSource()).getText(); //numCombo.add(num); } public void widgetSelected(SelectionEvent e){ //final String num = ((Combo) e.getSource()).getText(); //numCombo.add(num); } }); return numCombo; } private void calcSize(CoolItem item){ Control control = item.getControl(); Point pt = control.computeSize(SWT.DEFAULT, SWT.DEFAULT); pt = item.computeSize(pt.x, pt.y); item.setSize(pt); } @Override public void setFocus() { // TODO Auto-generated method stub if(this.numCombo != null){ this.numCombo.setFocus(); } } public void dispose() { super.dispose(); removeOnlineLister(); } protected void addOnlineLister(){ SwitchUsersSession session = Activator.getSwitchUsersSession(); if(session != null){ session.addPropertyChangeListener(SwitchUsersSession.PROP_DISPATCHER_ONLINE,this); this.call.setEnabled(session.canDail()); } } protected void removeOnlineLister(){ SwitchUsersSession session = Activator.getSwitchUsersSession(); if(session != null){ session.removePropertyChangeListener(SwitchUsersSession.PROP_DISPATCHER_ONLINE,this); } } protected void checkEnable(Object value){ /*boolean v = true; if(value instanceof Boolean){ Boolean val = (Boolean)value; v = val.booleanValue(); } else if(value instanceof String){ String val = (String)value; if(val.equals("end") || val.equals("none")){ v = false; } } this.call.setEnabled(v);*/ SwitchUsersSession session = Activator.getSwitchUsersSession(); if(session != null){ this.call.setEnabled(session.canDail()); } } @Override public void propertyChange(final PropertyChangeEvent evt) { Activator.getDisplay().asyncExec(new Runnable() { public void run() { if(evt.getPropertyName().equals(SwitchUsersSession.PROP_DISPATCHER_ONLINE)){ checkEnable(evt.getNewValue()); } } }); } }