/**
*
*/
package org.nightlabs.jfire.contact.pbx.ui;
import java.util.ResourceBundle;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.nightlabs.base.ui.composite.LabeledText;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.eclipse.ui.dialog.ResizableTitleAreaDialog;
import org.nightlabs.jfire.base.login.ui.action.LSDWorkbenchWindowActionDelegate;
import org.nightlabs.jfire.contact.pbx.ui.resource.Messages;
import org.nightlabs.jfire.pbx.SimpleCall;
import org.nightlabs.jfire.pbx.ui.call.CallHandlerRegistry;
/**
* @author abieber
*
*/
public class CallPhoneNumberAction extends LSDWorkbenchWindowActionDelegate {
private class EnterNumberDialog extends ResizableTitleAreaDialog {
private String phoneNumber;
private LabeledText phoneNumberText;
public EnterNumberDialog(Shell shell, ResourceBundle resourceBundle) {
super(shell, resourceBundle);
}
@Override
protected Control createDialogArea(Composite parent) {
Composite area = (Composite) super.createDialogArea(parent);
getShell().setText(Messages.getString("org.nightlabs.jfire.contact.pbx.ui.CallPhoneNumberAction.dialog.title")); //$NON-NLS-1$
setTitle(Messages.getString("org.nightlabs.jfire.contact.pbx.ui.CallPhoneNumberAction.dialog.message")); //$NON-NLS-1$
XComposite wrapper = new XComposite(area, SWT.NONE);
phoneNumberText = new LabeledText(wrapper, "Phone number");
phoneNumberText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
phoneNumberText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent arg0) {
phoneNumber = phoneNumberText.getText();
}
});
return wrapper;
}
}
/**
*
*/
public CallPhoneNumberAction() {
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.base.login.ui.action.LSDWorkbenchWindowActionDelegate#run(org.eclipse.jface.action.IAction)
*/
@Override
public void run(IAction action) {
EnterNumberDialog dlg = new EnterNumberDialog(getShell(), Messages.RESOURCE_BUNDLE);
if (dlg.open() == Window.OK) {
String phoneNumber = dlg.phoneNumber;
CallHandlerRegistry.sharedInstance().call(new SimpleCall(phoneNumber));
}
}
}