use of com.codename1.ui.events.ActionListener in project CodenameOne by codenameone.
the class BlackBerryOS5Implementation method captureVideo.
public void captureVideo(ActionListener response) {
captureCallback = new EventDispatcher();
captureCallback.addListener(response);
UiApplication.getUiApplication().addFileSystemJournalListener(new FileSystemJournalListener() {
private long lastUSN;
private String videoPath;
public void fileJournalChanged() {
// next sequence number file system will use
long USN = FileSystemJournal.getNextUSN();
for (long i = USN - 1; i >= lastUSN && i < USN; --i) {
FileSystemJournalEntry entry = FileSystemJournal.getEntry(i);
if (entry == null) {
break;
}
String path = entry.getPath();
if (entry.getEvent() == FileSystemJournalEntry.FILE_ADDED && videoPath == null) {
int index = path.indexOf(".3GP");
if (index != -1) {
videoPath = path;
}
} else if (entry.getEvent() == FileSystemJournalEntry.FILE_RENAMED) {
if (path != null && path.equals(videoPath)) {
// close the camera
UiApplication.getUiApplication().removeFileSystemJournalListener(this);
try {
EventInjector.KeyEvent inject = new EventInjector.KeyEvent(EventInjector.KeyEvent.KEY_DOWN, Characters.ESCAPE, 0, 200);
inject.post();
inject.post();
} catch (Exception e) {
// try to close the camera
}
captureCallback.fireActionEvent(new ActionEvent("file://" + path));
captureCallback = null;
videoPath = null;
break;
}
}
}
lastUSN = USN;
}
});
app.setWaitingForReply(true);
synchronized (UiApplication.getEventLock()) {
Invoke.invokeApplication(Invoke.APP_TYPE_CAMERA, new CameraArguments(CameraArguments.ARG_VIDEO_RECORDER));
}
}
use of com.codename1.ui.events.ActionListener in project CodenameOne by codenameone.
the class MenuBar method showMenu.
/**
* This method shows the menu on the Form.
* The method creates a Dialog with the commands and calls showMenuDialog.
* The method blocks until the user dispose the dialog.
*/
public void showMenu() {
final Dialog d = new Dialog("Menu", "");
d.setDisposeWhenPointerOutOfBounds(true);
d.setMenu(true);
d.addOrientationListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
d.dispose();
}
});
d.setTransitionInAnimator(transitionIn);
d.setTransitionOutAnimator(transitionOut);
d.setLayout(new BorderLayout());
d.setScrollable(false);
// calling parent.createCommandComponent is done only for backward
// compatability reasons, in the next version this call be replaced with
// calling directly to createCommandComponent
((Form) d).getMenuBar().commandList = createCommandComponent(commands);
if (menuCellRenderer != null && ((Form) d).getMenuBar().commandList instanceof List) {
((List) ((Form) d).getMenuBar().commandList).setListCellRenderer(menuCellRenderer);
}
d.getContentPane().getStyle().setMargin(0, 0, 0, 0);
d.addComponent(BorderLayout.CENTER, ((Form) d).getMenuBar().commandList);
if (thirdSoftButton) {
d.addCommand(selectMenuItem);
d.addCommand(cancelMenuItem);
} else {
d.addCommand(cancelMenuItem);
if (soft.length > 1) {
d.addCommand(selectMenuItem);
}
}
d.setClearCommand(cancelMenuItem);
d.setBackCommand(cancelMenuItem);
if (((Form) d).getMenuBar().commandList instanceof List) {
((List) ((Form) d).getMenuBar().commandList).addActionListener(((Form) d).getMenuBar());
}
menuDisplaying = true;
Command result = showMenuDialog(d);
menuDisplaying = false;
if (result != cancelMenuItem) {
Command c = null;
if (result == selectMenuItem) {
c = getComponentSelectedCommand(((Form) d).getMenuBar().commandList);
if (c != null) {
ActionEvent e = new ActionEvent(c, ActionEvent.Type.Command);
c.actionPerformed(e);
}
} else {
c = result;
// a touch menu will always send its commands on its own...
if (!isTouchMenus()) {
c = result;
if (c != null) {
ActionEvent e = new ActionEvent(c, ActionEvent.Type.Command);
c.actionPerformed(e);
}
}
}
// menu item was handled internally in a touch interface that is not a touch menu
if (c != null) {
parent.actionCommandImpl(c);
}
}
if (((Form) d).getMenuBar().commandList instanceof List) {
((List) ((Form) d).getMenuBar().commandList).removeActionListener(((Form) d).getMenuBar());
}
Form upcoming = Display.getInstance().getCurrentUpcoming();
if (upcoming == parent) {
d.disposeImpl();
} else {
parent.tint = (upcoming instanceof Dialog);
}
}
use of com.codename1.ui.events.ActionListener in project CodenameOne by codenameone.
the class EmailShare method share.
/**
* {@inheritDoc}
*/
public void share(final String toShare, final String image, final String mimeType) {
final Form currentForm = Display.getInstance().getCurrent();
final Form contactsForm = new Form("Contacts");
contactsForm.setLayout(new BorderLayout());
contactsForm.setScrollable(false);
contactsForm.addComponent(BorderLayout.CENTER, new Label("Please wait..."));
contactsForm.show();
Display.getInstance().startThread(new Runnable() {
public void run() {
String[] ids = ContactsManager.getAllContacts();
if (ids == null || ids.length == 0) {
Display.getInstance().callSerially(new Runnable() {
public void run() {
Dialog.show("Failed to Share", "No Contacts Found", "Ok", null);
currentForm.showBack();
}
});
return;
}
ContactsModel model = new ContactsModel(ids);
final List contacts = new List(model);
contacts.setRenderer(createListRenderer());
Display.getInstance().callSerially(new Runnable() {
public void run() {
contacts.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
final ShareForm[] f = new ShareForm[1];
Hashtable contact = (Hashtable) contacts.getSelectedItem();
if (image == null) {
f[0] = new ShareForm(contactsForm, "Send Email", (String) contact.get("email"), toShare, new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String[] recieptents = new String[1];
recieptents[0] = f[0].getTo();
Message msg = new Message(toShare);
Message.sendMessage(recieptents, "share", msg);
finish();
}
});
f[0].show();
} else {
f[0] = new ShareForm(contactsForm, "Send Email", (String) contact.get("email"), toShare, image, new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String[] recieptents = new String[1];
recieptents[0] = f[0].getTo();
Message msg = new Message(toShare);
msg.setAttachment(image);
msg.setMimeType(mimeType);
Message.sendMessage(recieptents, "share", msg);
finish();
}
});
f[0].show();
}
}
});
contactsForm.addComponent(BorderLayout.CENTER, contacts);
Command back = new Command("Back") {
public void actionPerformed(ActionEvent evt) {
currentForm.showBack();
}
};
contactsForm.addCommand(back);
contactsForm.setBackCommand(back);
contactsForm.revalidate();
}
});
}
}, "Email Thread").start();
}
use of com.codename1.ui.events.ActionListener in project CodenameOne by codenameone.
the class SignIn method start.
public void start() {
// new SignInFormGB(theme).show();
// if (true) return;
loginForm = new Form("Sign in Demo");
loginForm.setLayout(new BorderLayout());
Container center = new Container(new BoxLayout(BoxLayout.Y_AXIS));
center.setUIID("ContainerWithPadding");
Image logo = theme.getImage("CodenameOne.png");
Label l = new Label(logo);
Container flow = new Container(new FlowLayout(Component.CENTER));
flow.addComponent(l);
center.addComponent(flow);
final TextField username = new TextField();
username.setHint("Username");
final TextField pass = new TextField();
pass.setHint("Password");
pass.setConstraint(TextField.PASSWORD);
center.addComponent(username);
center.addComponent(pass);
Button signIn = new Button("Sign In");
signIn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (username.getText().length() == 0 || pass.getText().length() == 0) {
return;
}
UserForm userForm = new UserForm(username.getText(), (EncodedImage) theme.getImage("user.png"), null);
userForm.show();
}
});
center.addComponent(signIn);
loginForm.addComponent(BorderLayout.CENTER, center);
Container bottom = new Container(new BoxLayout(BoxLayout.Y_AXIS));
Button loginWFace = new Button(theme.getImage("signin_facebook.png"));
loginWFace.setUIID("LoginButton");
loginWFace.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// create your own app identity on facebook follow the guide here:
// facebook-login.html
String clientId = "1171134366245722";
String redirectURI = "http://www.codenameone.com/";
String clientSecret = "";
if (clientSecret.length() == 0) {
System.err.println("create your own facebook app follow the guide here:");
System.err.println("http://www.codenameone.com/facebook-login.html");
return;
}
Login fb = FacebookConnect.getInstance();
fb.setClientId(clientId);
fb.setRedirectURI(redirectURI);
fb.setClientSecret(clientSecret);
login = fb;
fb.setCallback(new LoginListener(LoginListener.FACEBOOK));
if (!fb.isUserLoggedIn()) {
fb.doLogin();
} else {
showFacebookUser(fb.getAccessToken().getToken());
}
}
});
Button loginWG = new Button(theme.getImage("signin_google.png"));
loginWG.setUIID("LoginButton");
loginWG.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
SignIn.this.doFirebase();
// create your own google project follow the guide here:
// http://www.codenameone.com/google-login.html
String clientId = "555462747934-iujpd5saj4pjpibo7c6r9tbjfef22rh1.apps.googleusercontent.com";
String redirectURI = "https://www.codenameone.com/oauth2callback";
String clientSecret = "650YqplrnAI0KXb9LMUnVNnx";
if (clientSecret.length() == 0) {
System.err.println("create your own google project follow the guide here:");
System.err.println("http://www.codenameone.com/google-login.html");
return;
}
Login gc = GoogleConnect.getInstance();
gc.setClientId(clientId);
gc.setRedirectURI(redirectURI);
gc.setClientSecret(clientSecret);
gc.setScope("https://www.googleapis.com/auth/plus.profile.emails.read https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file");
login = gc;
gc.setCallback(new LoginListener(LoginListener.GOOGLE));
if (!gc.isUserLoggedIn()) {
gc.doLogin();
} else {
showGoogleUser(gc.getAccessToken().getToken());
}
}
});
bottom.addComponent(loginWFace);
bottom.addComponent(loginWG);
loginForm.addComponent(BorderLayout.SOUTH, bottom);
loginForm.show();
}
use of com.codename1.ui.events.ActionListener in project CodenameOne by codenameone.
the class Toolbar method bindScrollListener.
private void bindScrollListener(boolean bind) {
final Form f = getComponentForm();
if (f != null) {
final Container actualPane = f.getActualPane();
final Container contentPane = f.getContentPane();
if (bind) {
initVars(actualPane);
scrollListener = new ScrollListener() {
public void scrollChanged(int scrollX, int scrollY, int oldscrollX, int oldscrollY) {
int diff = scrollY - oldscrollY;
int toolbarNewY = getY() - diff;
if (scrollY < 0 || Math.abs(toolbarNewY) < 2) {
return;
}
toolbarNewY = Math.max(toolbarNewY, -getHeight());
toolbarNewY = Math.min(toolbarNewY, initialY);
if (toolbarNewY != getY()) {
setY(toolbarNewY);
if (!layered) {
actualPane.setY(actualPaneInitialY + toolbarNewY);
actualPane.setHeight(actualPaneInitialH + getHeight() - toolbarNewY);
actualPane.doLayout();
}
f.repaint();
}
}
};
contentPane.addScrollListener(scrollListener);
releasedListener = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (getY() + getHeight() / 2 > 0) {
showToolbar();
} else {
hideToolbar();
}
f.repaint();
}
};
contentPane.addPointerReleasedListener(releasedListener);
} else {
if (scrollListener != null) {
contentPane.removeScrollListener(scrollListener);
contentPane.removePointerReleasedListener(releasedListener);
}
}
}
}
Aggregations