Search in sources :

Example 51 with KeyAdapter

use of org.eclipse.swt.events.KeyAdapter in project OpenGrok by OpenGrok.

the class ResultsDialog method createDialogArea.

@Override
protected Control createDialogArea(Composite parent) {
    parent.setLayout(new GridLayout(1, true));
    filter = new Text(parent, SWT.FILL);
    filter.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    TextUtils.setToDefault(filter, FILTER_DEFAULT);
    filter.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent e) {
            if ("".equals(filter.getText())) {
                TextUtils.setToDefault(filter, FILTER_DEFAULT);
            }
        }

        @Override
        public void focusGained(FocusEvent e) {
            TextUtils.makeEditable(filter);
        }
    });
    filter.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent e) {
            viewer.refresh();
        }
    });
    return parent;
}
Also used : KeyEvent(org.eclipse.swt.events.KeyEvent) GridLayout(org.eclipse.swt.layout.GridLayout) KeyAdapter(org.eclipse.swt.events.KeyAdapter) GridData(org.eclipse.swt.layout.GridData) Text(org.eclipse.swt.widgets.Text) FocusListener(org.eclipse.swt.events.FocusListener) FocusEvent(org.eclipse.swt.events.FocusEvent)

Example 52 with KeyAdapter

use of org.eclipse.swt.events.KeyAdapter in project OpenGrok by OpenGrok.

the class ToolBarControl method createControl.

@Override
protected Control createControl(Composite parent) {
    final Text searchBox = new Text(parent, SWT.FILL | SWT.BORDER);
    TextUtils.setToDefault(searchBox, "{OpenGrok");
    searchBox.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent e) {
            if (!disableFocusLostEvent) {
                TextUtils.setToDefault(searchBox, "{OpenGrok");
            }
        }

        @Override
        public void focusGained(FocusEvent e) {
            TextUtils.makeEditable(searchBox);
        }
    });
    searchBox.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent e) {
            if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
                doSearch();
            } else if (e.keyCode == SWT.ARROW_UP) {
                historyIndex++;
                if (historyIndex > history.size()) {
                    historyIndex = history.size();
                }
                if (historyIndex >= 0 && history.size() >= historyIndex) {
                    searchBox.setText(history.get(historyIndex - 1));
                }
            } else if (e.keyCode == SWT.ARROW_DOWN) {
                historyIndex--;
                if (historyIndex < 0) {
                    historyIndex = 0;
                } else if (history.size() > historyIndex) {
                    searchBox.setText(history.get(historyIndex));
                }
            } else if ((e.stateMask & SWT.CTRL) == SWT.CTRL && e.keyCode == 'v') {
                searchBox.setText("");
                searchBox.paste();
                if ((e.stateMask & SWT.SHIFT) == SWT.SHIFT) {
                    doSearch();
                }
            } else if (e.stateMask == SWT.CTRL && e.keyCode == 'c') {
                searchBox.copy();
            }
        }

        private void doSearch() {
            String text = searchBox.getText();
            if (text != null && !"".equals(text)) {
                history.add(0, text);
                historyIndex = 0;
                Rectangle bounds = searchBox.getBounds();
                Point topLeft = new Point(bounds.x, bounds.y + bounds.height);
                topLeft = searchBox.getShell().toDisplay(topLeft);
                final ResultsDialog dialog = new ResultsDialog(Display.getCurrent().getActiveShell(), text, topLeft);
                Query query = new Query(text);
                disableFocusLostEvent = true;
                query.run(dialog);
                disableFocusLostEvent = false;
            }
        }
    });
    return parent;
}
Also used : KeyEvent(org.eclipse.swt.events.KeyEvent) Query(org.opensolaris.opengrok.egrok.query.Query) KeyAdapter(org.eclipse.swt.events.KeyAdapter) Rectangle(org.eclipse.swt.graphics.Rectangle) Text(org.eclipse.swt.widgets.Text) Point(org.eclipse.swt.graphics.Point) FocusListener(org.eclipse.swt.events.FocusListener) FocusEvent(org.eclipse.swt.events.FocusEvent)

Example 53 with KeyAdapter

use of org.eclipse.swt.events.KeyAdapter in project dbeaver by serge-rider.

the class DatabaseConsumerPageMapping method createControl.

@Override
public void createControl(Composite parent) {
    initializeDialogUnits(parent);
    final DatabaseConsumerSettings settings = getWizard().getPageSettings(this, DatabaseConsumerSettings.class);
    Composite composite = new Composite(parent, SWT.NULL);
    GridLayout gl = new GridLayout();
    gl.marginHeight = 0;
    gl.marginWidth = 0;
    composite.setLayout(gl);
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    {
        // Target container
        Composite containerPanel = new Composite(composite, SWT.NONE);
        containerPanel.setLayout(new GridLayout(4, false));
        containerPanel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        UIUtils.createControlLabel(containerPanel, "Target container");
        containerIcon = new Label(containerPanel, SWT.NONE);
        containerIcon.setImage(DBeaverIcons.getImage(DBIcon.TYPE_UNKNOWN));
        containerName = new Text(containerPanel, SWT.BORDER | SWT.READ_ONLY);
        containerName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        containerName.setText("");
        Button browseButton = new Button(containerPanel, SWT.PUSH);
        browseButton.setImage(DBeaverIcons.getImage(DBIcon.TREE_FOLDER));
        browseButton.setText("...");
        browseButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                IProject activeProject = DBeaverCore.getInstance().getProjectRegistry().getActiveProject();
                if (activeProject != null) {
                    final DBNModel navigatorModel = DBeaverCore.getInstance().getNavigatorModel();
                    final DBNProject rootNode = navigatorModel.getRoot().getProject(activeProject);
                    DBNNode selectedNode = settings.getContainerNode();
                    if (selectedNode == null && !settings.getDataMappings().isEmpty()) {
                        // Use first source object as cur selection (it's better than nothing)
                        DBSDataContainer firstSource = settings.getDataMappings().keySet().iterator().next();
                        selectedNode = navigatorModel.getNodeByObject(firstSource);
                        while (selectedNode != null) {
                            if (selectedNode instanceof DBSWrapper && ((DBSWrapper) selectedNode).getObject() instanceof DBSObjectContainer) {
                                break;
                            } else {
                                selectedNode = selectedNode.getParentNode();
                            }
                        }
                    }
                    DBNNode node = BrowseObjectDialog.selectObject(getShell(), "Choose container", rootNode.getDatabases(), selectedNode, new Class[] { DBSObjectContainer.class }, null);
                    if (node instanceof DBNDatabaseNode) {
                        settings.setContainerNode((DBNDatabaseNode) node);
                        containerIcon.setImage(DBeaverIcons.getImage(node.getNodeIconDefault()));
                        containerName.setText(settings.getContainerFullName());
                        // Reset mappings
                        for (DatabaseMappingContainer mappingContainer : settings.getDataMappings().values()) {
                            if (mappingContainer.getMappingType() == DatabaseMappingType.create) {
                                try {
                                    mappingContainer.refreshMappingType(getContainer(), DatabaseMappingType.create);
                                } catch (DBException e1) {
                                    log.error(e1);
                                }
                            }
                        }
                        mappingViewer.refresh();
                        updatePageCompletion();
                    }
                }
            }
        });
    }
    createMappingsTree(composite);
    {
        // Control buttons
        Composite buttonsPanel = new Composite(composite, SWT.NONE);
        buttonsPanel.setLayout(new GridLayout(4, false));
        buttonsPanel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        final Button mapTableButton = new Button(buttonsPanel, SWT.PUSH);
        mapTableButton.setImage(DBeaverIcons.getImage(DBIcon.TREE_TABLE));
        mapTableButton.setText("Existing table ...");
        mapTableButton.setEnabled(false);
        mapTableButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                mapExistingTable((DatabaseMappingContainer) getSelectedMapping());
            }
        });
        final Button createNewButton = new Button(buttonsPanel, SWT.PUSH);
        createNewButton.setImage(DBeaverIcons.getImage(DBIcon.TREE_VIEW));
        createNewButton.setText("New table...");
        createNewButton.setEnabled(false);
        createNewButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                mapNewTable((DatabaseMappingContainer) getSelectedMapping());
            }
        });
        final Button columnsButton = new Button(buttonsPanel, SWT.PUSH);
        columnsButton.setImage(DBeaverIcons.getImage(DBIcon.TREE_COLUMNS));
        columnsButton.setText("Columns' mappings ...");
        columnsButton.setEnabled(false);
        columnsButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                DatabaseMappingObject selectedMapping = getSelectedMapping();
                mapColumns(selectedMapping instanceof DatabaseMappingContainer ? (DatabaseMappingContainer) selectedMapping : ((DatabaseMappingAttribute) selectedMapping).getParent());
            }
        });
        final Button ddlButton = new Button(buttonsPanel, SWT.PUSH);
        ddlButton.setImage(DBeaverIcons.getImage(UIIcon.SQL_TEXT));
        ddlButton.setText("DDL ...");
        ddlButton.setEnabled(false);
        ddlButton.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                DatabaseMappingObject selectedMapping = getSelectedMapping();
                showDDL(selectedMapping instanceof DatabaseMappingContainer ? (DatabaseMappingContainer) selectedMapping : ((DatabaseMappingAttribute) selectedMapping).getParent());
            }
        });
        mappingViewer.getTree().addKeyListener(new KeyAdapter() {

            @Override
            public void keyReleased(KeyEvent e) {
                try {
                    boolean updated = false;
                    Object element = null;
                    if (e.character == SWT.CR) {
                    //Object element = mappingViewer.getStructuredSelection().getFirstElement();
                    //mappingViewer.editElement(element, 1);
                    } else if (e.character == SWT.DEL) {
                        for (TreeItem item : mappingViewer.getTree().getSelection()) {
                            element = item.getData();
                            if (element instanceof DatabaseMappingAttribute) {
                                DatabaseMappingAttribute attribute = (DatabaseMappingAttribute) element;
                                attribute.setMappingType(DatabaseMappingType.skip);
                            } else if (element instanceof DatabaseMappingContainer) {
                                DatabaseMappingContainer container = (DatabaseMappingContainer) element;
                                container.refreshMappingType(getContainer(), DatabaseMappingType.skip);
                            }
                        }
                        updated = true;
                    } else if (e.character == SWT.SPACE) {
                        for (TreeItem item : mappingViewer.getTree().getSelection()) {
                            element = item.getData();
                            if (element instanceof DatabaseMappingAttribute) {
                                DatabaseMappingAttribute attribute = (DatabaseMappingAttribute) item.getData();
                                attribute.setMappingType(DatabaseMappingType.existing);
                                attribute.updateMappingType(VoidProgressMonitor.INSTANCE);
                            } else if (element instanceof DatabaseMappingContainer) {
                                DatabaseMappingContainer container = (DatabaseMappingContainer) element;
                                setMappingTarget(container, container.getSource().getName());
                            }
                        }
                        updated = true;
                    }
                    if (updated) {
                        mappingViewer.refresh();
                        updatePageCompletion();
                        if (element instanceof DatabaseMappingContainer) {
                            // Select next container
                            @SuppressWarnings("unchecked") List<DatabaseMappingContainer> model = (List<DatabaseMappingContainer>) mappingViewer.getInput();
                            int curIndex = model.indexOf(element);
                            if (curIndex < model.size() - 1) {
                                mappingViewer.setSelection(new StructuredSelection(model.get(curIndex + 1)), true);
                            }
                        }
                    }
                } catch (DBException e1) {
                    UIUtils.showDatabaseError(getShell(), "Mapping error", "Error mapping table", e1);
                }
            }
        });
        mappingViewer.addSelectionChangedListener(new ISelectionChangedListener() {

            @Override
            public void selectionChanged(SelectionChangedEvent event) {
                DatabaseMappingObject mapping = getSelectedMapping();
                mapTableButton.setEnabled(mapping instanceof DatabaseMappingContainer);
                createNewButton.setEnabled(mapping instanceof DatabaseMappingContainer && settings.getContainerNode() != null);
                final boolean hasMappings = (mapping instanceof DatabaseMappingContainer && mapping.getMappingType() != DatabaseMappingType.unspecified) || (mapping instanceof DatabaseMappingAttribute && ((DatabaseMappingAttribute) mapping).getParent().getMappingType() != DatabaseMappingType.unspecified);
                columnsButton.setEnabled(hasMappings);
                ddlButton.setEnabled(hasMappings);
            }
        });
        mappingViewer.addDoubleClickListener(new IDoubleClickListener() {

            @Override
            public void doubleClick(DoubleClickEvent event) {
                DatabaseMappingObject selectedMapping = getSelectedMapping();
                if (selectedMapping != null) {
                    if (selectedMapping instanceof DatabaseMappingContainer) {
                    /*
                            if (selectedMapping.getMappingType() == DatabaseMappingType.unspecified) {
                                mapExistingTable((DatabaseMappingContainer) selectedMapping);
                            } else {
                                mapColumns((DatabaseMappingContainer) selectedMapping);
                            }
*/
                    }
                }
            }
        });
    }
    {
        Composite hintPanel = new Composite(composite, SWT.NONE);
        hintPanel.setLayout(new GridLayout(3, false));
        hintPanel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
        new Label(hintPanel, SWT.NONE).setText("* DEL - skip column(s)  SPACE - map column(s)");
    }
    setControl(composite);
}
Also used : DBException(org.jkiss.dbeaver.DBException) DBNNode(org.jkiss.dbeaver.model.navigator.DBNNode) KeyAdapter(org.eclipse.swt.events.KeyAdapter) DBNModel(org.jkiss.dbeaver.model.navigator.DBNModel) KeyEvent(org.eclipse.swt.events.KeyEvent) GridLayout(org.eclipse.swt.layout.GridLayout) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ArrayList(java.util.ArrayList) List(java.util.List) DBNDatabaseNode(org.jkiss.dbeaver.model.navigator.DBNDatabaseNode) DBNProject(org.jkiss.dbeaver.model.navigator.DBNProject) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) IProject(org.eclipse.core.resources.IProject) GridData(org.eclipse.swt.layout.GridData)

Example 54 with KeyAdapter

use of org.eclipse.swt.events.KeyAdapter in project otertool by wuntee.

the class Gui method createContents.

/**
	 * Create contents of the window.
	 */
protected void createContents() {
    shlOterTool = new Shell();
    shlOterTool.setImage(SWTResourceManager.getImage(Gui.class, OterStatics.ICON_APP));
    shlOterTool.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent arg0) {
            try {
                logcatController.stop();
            } catch (Exception e) {
            // Do nothing
            }
        }
    });
    shlOterTool.setMinimumSize(new Point(550, 250));
    shlOterTool.setSize(1000, 600);
    shlOterTool.setText("Otertool");
    shlOterTool.setLayout(new FormLayout());
    Menu menu = new Menu(shlOterTool, SWT.BAR);
    shlOterTool.setMenuBar(menu);
    MenuItem mntmFile = new MenuItem(menu, SWT.CASCADE);
    mntmFile.setText("File");
    Menu menu_1 = new Menu(mntmFile);
    mntmFile.setMenu(menu_1);
    MenuItem mntmConfigure = new MenuItem(menu_1, SWT.NONE);
    mntmConfigure.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            Object ret = new ConfigurationDialog(shlOterTool).open();
        }
    });
    mntmConfigure.setText("Configure");
    new MenuItem(menu_1, SWT.SEPARATOR);
    MenuItem mntmExit = new MenuItem(menu_1, SWT.NONE);
    mntmExit.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            System.exit(0);
        }
    });
    mntmExit.setText("Exit");
    MenuItem mntmLogcat = new MenuItem(menu, SWT.CASCADE);
    mntmLogcat.setText("LogCat");
    Menu menu_2 = new Menu(mntmLogcat);
    mntmLogcat.setMenu(menu_2);
    MenuItem mntmStart = new MenuItem(menu_2, SWT.NONE);
    mntmStart.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            try {
                logcatController.start();
            } catch (Exception e) {
                GuiWorkshop.messageError(shlOterTool, "Could not start: " + e.getMessage());
                logger.error("Could not start logcat:", e);
            }
        }
    });
    mntmStart.setText("Start");
    MenuItem mntmStop = new MenuItem(menu_2, SWT.NONE);
    mntmStop.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatController.stop();
        }
    });
    mntmStop.setText("Stop");
    new MenuItem(menu_2, SWT.SEPARATOR);
    MenuItem mntmClear = new MenuItem(menu_2, SWT.NONE);
    mntmClear.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatTable.removeAll();
        }
    });
    mntmClear.setText("Clear");
    MenuItem mntmFsdiff = new MenuItem(menu, SWT.CASCADE);
    mntmFsdiff.setText("FsDiff");
    Menu menu_3 = new Menu(mntmFsdiff);
    mntmFsdiff.setMenu(menu_3);
    MenuItem mntmScanFirst = new MenuItem(menu_3, SWT.NONE);
    mntmScanFirst.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            try {
                fsDiffController.scanFirst();
            } catch (Exception e) {
                GuiWorkshop.messageError(shlOterTool, "Could not scan: " + e.getMessage());
                logger.error("Could not scan:", e);
            }
        }
    });
    mntmScanFirst.setText("Scan First");
    MenuItem mntmScanSecond = new MenuItem(menu_3, SWT.NONE);
    mntmScanSecond.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            try {
                fsDiffController.scanSecond();
            } catch (Exception e) {
                GuiWorkshop.messageError(shlOterTool, "Could not scan: " + e.getMessage());
                logger.error("Could not scan:", e);
            }
        }
    });
    mntmScanSecond.setText("Scan Second");
    MenuItem mntmGenerateDifferences = new MenuItem(menu_3, SWT.NONE);
    mntmGenerateDifferences.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            fsDiffController.generateDifferences();
        }
    });
    mntmGenerateDifferences.setText("Generate Differences");
    new MenuItem(menu_3, SWT.SEPARATOR);
    MenuItem mntmClear_1 = new MenuItem(menu_3, SWT.NONE);
    mntmClear_1.setText("Clear");
    MenuItem mntmApktool = new MenuItem(menu, SWT.CASCADE);
    mntmApktool.setText("Smali");
    Menu menu_4 = new Menu(mntmApktool);
    mntmApktool.setMenu(menu_4);
    MenuItem mntmLoadFile = new MenuItem(menu_4, SWT.NONE);
    mntmLoadFile.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            String file = GuiWorkshop.selectFile(shlOterTool, new String[] { "*.apk" });
            if (file != null) {
                smaliController.loadApk(new File(file));
            }
        }
    });
    mntmLoadFile.setText("Load APK");
    MenuItem mntmLoadApkDevice = new MenuItem(menu_4, SWT.NONE);
    mntmLoadApkDevice.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            PackageBean apkBean = new LoadApkFromDeviceDialog(shlOterTool).open();
            if (apkBean != null) {
                smaliController.loadApkFromDevice(apkBean);
            }
        }
    });
    mntmLoadApkDevice.setText("Load APK From Device");
    MenuItem mntmBuild = new MenuItem(menu_4, SWT.NONE);
    mntmBuild.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (smaliController.unsavedFilesOpen() == true) {
                int save = GuiWorkshop.yesNoDialog(getShell(), "Really build?", "You have unsaved smali files; if you do not save them, they will not be applied to the new APK. Are you sure you want to rebuild the APK without saving?");
                if (save == SWT.NO) {
                    return;
                }
            }
            BuildAndSignApkBean bean = new BuildAndSignApkDialog(getShell()).open();
            if (bean != null && bean.getApkFilename() != null) {
                if (bean.isSign()) {
                    if (bean.getApkFilename() != null && bean.getCertAlias() != null && bean.getCertFilename() != null && bean.getPassword() != null) {
                        setStatus("Building and signing APK to: " + bean.getApkFilename());
                        smaliController.rebuildAndSignApk(bean);
                    }
                } else {
                    smaliController.rebuildApk(bean.getApkFilename());
                }
            }
        }
    });
    mntmBuild.setText("Build APK...");
    MenuItem mntmJavaToSmali = new MenuItem(menu, SWT.CASCADE);
    mntmJavaToSmali.setText("Java to Smali");
    Menu menu_8 = new Menu(mntmJavaToSmali);
    mntmJavaToSmali.setMenu(menu_8);
    MenuItem mntmCompile = new MenuItem(menu_8, SWT.NONE);
    mntmCompile.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            javaToSmaliController.tryToCompileJava(javaToSmaliJavaStyledText, javaToSmaliSmaliStyledText);
        }
    });
    mntmCompile.setText("Convert Java to Smali");
    new MenuItem(menu_8, SWT.SEPARATOR);
    MenuItem mntmConfigureClasspath = new MenuItem(menu_8, SWT.NONE);
    mntmConfigureClasspath.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            Object ret = new ConfigurationDialog(shlOterTool).open();
        }
    });
    mntmConfigureClasspath.setText("Configure classpath");
    MenuItem mntmAddAndroidjarTo = new MenuItem(menu_8, SWT.NONE);
    mntmAddAndroidjarTo.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            try {
                OterWorkshop.addAndroidjarToClasspath();
            } catch (Exception e) {
                GuiWorkshop.messageError(shlOterTool, e.getMessage());
                return;
            }
            GuiWorkshop.messageDialog(shlOterTool, "Sucessfull added android.jar to classpath. View File->Configure to view changes.");
        }
    });
    mntmAddAndroidjarTo.setText("Add android.jar to classpath");
    MenuItem mntmTools = new MenuItem(menu, SWT.CASCADE);
    mntmTools.setText("Tools");
    Menu menu_6 = new Menu(mntmTools);
    mntmTools.setMenu(menu_6);
    MenuItem mntmLaunchAndroid = new MenuItem(menu_6, SWT.NONE);
    mntmLaunchAndroid.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            setStatus("Launging android.");
            BackgroundCommand c = new BackgroundCommand(OterStatics.getAndroidCommand());
            try {
                c.execute();
            } catch (Exception e) {
                GuiWorkshop.messageError(shlOterTool, "Could not execute android: " + e.getMessage());
            }
            clearStatus();
        }
    });
    mntmLaunchAndroid.setText("Launch android");
    MenuItem mntmRestartAdb = new MenuItem(menu_6, SWT.NONE);
    mntmRestartAdb.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            setStatus("Restarting ADB");
            try {
                AdbWorkshop.restartAdb();
                GuiWorkshop.messageDialog(shlOterTool, "Adb has been restarted.");
            } catch (Exception e) {
                GuiWorkshop.messageError(shlOterTool, "Could not restart ADB: " + e.getMessage());
                logger.error("Could not restart ADB:", e);
            }
            clearStatus();
        }
    });
    mntmRestartAdb.setText("Restart ADB");
    MenuItem mntmInstallCertificate = new MenuItem(menu_6, SWT.NONE);
    mntmInstallCertificate.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            String certfile = GuiWorkshop.selectFile(shlOterTool, new String[] { "*" });
            if (certfile != null) {
                setStatus("Installing certificate: " + certfile);
                try {
                    AdbWorkshop.installCert(new File(certfile), "changeit");
                    GuiWorkshop.messageDialog(shlOterTool, "The certificate has been sucessfully installed");
                } catch (Exception e) {
                    GuiWorkshop.messageError(shlOterTool, "Could not install cert: " + e.getMessage());
                    logger.error("Could not install cert:", e);
                }
                clearStatus();
            }
        }
    });
    mntmInstallCertificate.setText("Install Certificate");
    MenuItem mntmInstallApk = new MenuItem(menu_6, SWT.NONE);
    mntmInstallApk.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            installApk();
        }
    });
    mntmInstallApk.setText("Install APK");
    MenuItem mntmCreateAvd = new MenuItem(menu_6, SWT.NONE);
    mntmCreateAvd.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            //installApk();
            CreateAvdBean ret = new CreateAvdDialog(getShell()).open();
            if (ret != null) {
                avdController.createAvd(ret);
            }
        }
    });
    mntmCreateAvd.setText("Create Android Virtual Device");
    tabFolder = new CTabFolder(shlOterTool, SWT.BORDER | SWT.BOTTOM);
    tabFolder.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            // If no tab is selected
            String selectedTab = tabFolder.getSelection().getText();
            if (selectedTab.equals("Package Manager")) {
                if (packageManagerTabFolder.getSelection() == null) {
                    packageManagerTabFolder.setSelection(0);
                }
                if (apkTable.getTable().getItemCount() == 0) {
                    apkTable.loadPackages();
                }
            } else if (selectedTab.equals("Smali")) {
                if (smaliTabFolder.getSelection() == null) {
                    smaliTabFolder.setSelection(0);
                }
            }
        }
    });
    FormData fd_tabFolder = new FormData();
    fd_tabFolder.top = new FormAttachment(0, 3);
    fd_tabFolder.right = new FormAttachment(100);
    fd_tabFolder.left = new FormAttachment(0, 3);
    tabFolder.setLayoutData(fd_tabFolder);
    tabFolder.setSimple(false);
    tabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
    CTabItem tbtmLogcat = new CTabItem(tabFolder, SWT.NONE);
    tbtmLogcat.setText("LogCat");
    Composite composite = new Composite(tabFolder, SWT.NONE);
    tbtmLogcat.setControl(composite);
    composite.setLayout(new GridLayout(1, false));
    Composite composite_1 = new Composite(composite, SWT.NONE);
    GridLayout gl_composite_1 = new GridLayout(3, false);
    gl_composite_1.horizontalSpacing = 0;
    gl_composite_1.marginHeight = 0;
    gl_composite_1.marginWidth = 0;
    gl_composite_1.verticalSpacing = 0;
    composite_1.setLayout(gl_composite_1);
    composite_1.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
    Composite composite_11 = new Composite(composite_1, SWT.NONE);
    composite_11.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    GridLayout gl_composite_11 = new GridLayout(1, false);
    gl_composite_11.horizontalSpacing = 0;
    gl_composite_11.marginHeight = 0;
    gl_composite_11.marginWidth = 0;
    gl_composite_11.verticalSpacing = 0;
    composite_11.setLayout(gl_composite_11);
    Label lblFilter = new Label(composite_11, SWT.HORIZONTAL);
    lblFilter.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    lblFilter.setText("Message Filter:");
    logcatTextFilter = new Text(composite_11, SWT.BORDER);
    logcatTextFilter.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent arg0) {
            logcatController.reFilterTable();
        }
    });
    logcatTextFilter.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    Composite composite_2 = new Composite(composite_1, SWT.NONE);
    composite_2.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, false, 1, 1));
    GridLayout gl_composite_2 = new GridLayout(8, false);
    gl_composite_2.verticalSpacing = 0;
    gl_composite_2.horizontalSpacing = 0;
    gl_composite_2.marginWidth = 0;
    gl_composite_2.marginHeight = 0;
    composite_2.setLayout(gl_composite_2);
    logcatCheckDebug = new Button(composite_2, SWT.CHECK);
    logcatCheckDebug.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatController.reFilterTable();
        }
    });
    logcatCheckDebug.setSize(57, 18);
    logcatCheckDebug.setSelection(true);
    logcatCheckDebug.setText("Debug");
    logcatCheckInfo = new Button(composite_2, SWT.CHECK);
    logcatCheckInfo.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatController.reFilterTable();
        }
    });
    logcatCheckInfo.setSize(43, 18);
    logcatCheckInfo.setSelection(true);
    logcatCheckInfo.setText("Info");
    logcatCheckWarn = new Button(composite_2, SWT.CHECK);
    logcatCheckWarn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatController.reFilterTable();
        }
    });
    logcatCheckWarn.setSize(49, 18);
    logcatCheckWarn.setSelection(true);
    logcatCheckWarn.setText("Warn");
    logcatCheckError = new Button(composite_2, SWT.CHECK);
    logcatCheckError.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatController.reFilterTable();
        }
    });
    logcatCheckError.setSize(49, 18);
    logcatCheckError.setSelection(true);
    logcatCheckError.setText("Error");
    logcatCheckVerbose = new Button(composite_2, SWT.CHECK);
    logcatCheckVerbose.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatController.reFilterTable();
        }
    });
    logcatCheckVerbose.setSize(66, 18);
    logcatCheckVerbose.setSelection(true);
    logcatCheckVerbose.setText("Verbose");
    new Label(composite_2, SWT.NONE);
    new Label(composite_2, SWT.NONE);
    this.logcatCheckAutoscroll = new Button(composite_2, SWT.CHECK);
    logcatCheckAutoscroll.setSize(83, 18);
    logcatCheckAutoscroll.setSelection(true);
    logcatCheckAutoscroll.setText("Auto-scroll");
    Composite composite_12 = new Composite(composite_1, SWT.NONE);
    composite_12.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, false, 1, 1));
    GridLayout gl_composite_12 = new GridLayout(4, false);
    gl_composite_12.marginLeft = 5;
    gl_composite_12.verticalSpacing = 0;
    gl_composite_12.marginWidth = 0;
    gl_composite_12.horizontalSpacing = 0;
    gl_composite_12.marginHeight = 0;
    composite_12.setLayout(gl_composite_12);
    Button btnClear = new Button(composite_12, SWT.NONE);
    btnClear.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatTable.removeAll();
        }
    });
    btnClear.setText("Clear");
    Button btnStart = new Button(composite_12, SWT.NONE);
    btnStart.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent arg0) {
        // TODO Auto-generated method stub
        }

        public void widgetSelected(SelectionEvent arg0) {
            try {
                logcatController.start();
            } catch (Exception e) {
                GuiWorkshop.messageError(shlOterTool, "Could not start: " + e.getMessage());
                logger.error("Could not start logcat:", e);
            }
        }
    });
    btnStart.setText("Start");
    Button btnStop = new Button(composite_12, SWT.NONE);
    btnStop.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent arg0) {
        // TODO Auto-generated method stub
        }

        public void widgetSelected(SelectionEvent arg0) {
            logcatController.stop();
        }
    });
    btnStop.setText("Stop");
    new Label(composite_12, SWT.NONE);
    logcatTable = new Table(composite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    logcatTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
    logcatTable.addMouseWheelListener(new MouseWheelListener() {

        public void mouseScrolled(MouseEvent arg0) {
        //if(arg0.y == logcatTable.getLocation().y)
        //logger.debug(arg0.y + ":" + logcatTable.getSize().y);
        //logcatTable.getBounds().y
        //logcatController.stopAutoscroll();
        }
    });
    logcatTable.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent arg0) {
        // TODO Auto-generated method stub	
        }

        public void widgetSelected(SelectionEvent arg0) {
            logcatController.stopAutoscroll();
        }
    });
    logcatTable.setHeaderVisible(true);
    logcatTable.setLinesVisible(true);
    TableColumn tblclmnDate = new TableColumn(logcatTable, SWT.NONE);
    tblclmnDate.setWidth(111);
    tblclmnDate.setText("Timestamp");
    TableColumn tblclmnNewColumn = new TableColumn(logcatTable, SWT.NONE);
    tblclmnNewColumn.setWidth(55);
    tblclmnNewColumn.setText("Level");
    TableColumn tblclmnClass = new TableColumn(logcatTable, SWT.NONE);
    tblclmnClass.setWidth(86);
    tblclmnClass.setText("Class");
    TableColumn tblclmnPid = new TableColumn(logcatTable, SWT.NONE);
    tblclmnPid.setWidth(34);
    tblclmnPid.setText("PID");
    TableColumn tblclmnMessage = new TableColumn(logcatTable, SWT.NONE);
    tblclmnMessage.setWidth(600);
    tblclmnMessage.setText("Message");
    Menu menu_7 = new Menu(logcatTable);
    logcatTable.setMenu(menu_7);
    MenuItem mntmCopy = new MenuItem(menu_7, SWT.NONE);
    mntmCopy.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatController.copy();
        }
    });
    mntmCopy.setText("Copy");
    MenuItem mntmCle = new MenuItem(menu_7, SWT.NONE);
    mntmCle.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logcatTable.removeAll();
        }
    });
    mntmCle.setText("Clear");
    statusLabel = new Label(shlOterTool, SWT.NONE);
    fd_tabFolder.bottom = new FormAttachment(statusLabel, -6);
    CTabItem tbtmFsdiff = new CTabItem(tabFolder, SWT.NONE);
    tbtmFsdiff.setText("FsDiff");
    Composite composite_5 = new Composite(tabFolder, SWT.NONE);
    tbtmFsdiff.setControl(composite_5);
    composite_5.setLayout(new FillLayout(SWT.HORIZONTAL));
    fsDiffSashForm = new SashForm(composite_5, SWT.NONE);
    Composite composite_6 = new Composite(fsDiffSashForm, SWT.NONE);
    composite_6.setLayout(new FormLayout());
    Label lblFirst = new Label(composite_6, SWT.NONE);
    FormData fd_lblFirst = new FormData();
    fd_lblFirst.top = new FormAttachment(1);
    fd_lblFirst.left = new FormAttachment(0);
    lblFirst.setLayoutData(fd_lblFirst);
    lblFirst.setText("First");
    fsDiffFirstTree = new Tree(composite_6, SWT.BORDER);
    FormData fd_tree_2 = new FormData();
    fd_tree_2.bottom = new FormAttachment(100);
    fd_tree_2.right = new FormAttachment(100);
    fd_tree_2.top = new FormAttachment(lblFirst, 0);
    fd_tree_2.left = new FormAttachment(0);
    fsDiffFirstTree.setLayoutData(fd_tree_2);
    Composite composite_7 = new Composite(fsDiffSashForm, SWT.NONE);
    composite_7.setLayout(new FormLayout());
    Label lblSecond = new Label(composite_7, SWT.NONE);
    FormData fd_lblSecond = new FormData();
    fd_lblSecond.top = new FormAttachment(1);
    fd_lblSecond.left = new FormAttachment(0);
    lblSecond.setLayoutData(fd_lblSecond);
    lblSecond.setText("Second");
    fsDiffSecondTree = new Tree(composite_7, SWT.BORDER);
    FormData fd_tree_3 = new FormData();
    fd_tree_3.bottom = new FormAttachment(100);
    fd_tree_3.right = new FormAttachment(100);
    fd_tree_3.top = new FormAttachment(lblSecond, 0);
    fd_tree_3.left = new FormAttachment(lblSecond, 0, SWT.LEFT);
    fsDiffSecondTree.setLayoutData(fd_tree_3);
    Composite composite_8 = new Composite(fsDiffSashForm, SWT.NONE);
    composite_8.setLayout(new FormLayout());
    Label lblDifferences = new Label(composite_8, SWT.NONE);
    FormData fd_lblDifferences = new FormData();
    fd_lblDifferences.top = new FormAttachment(1);
    fd_lblDifferences.left = new FormAttachment(0);
    lblDifferences.setLayoutData(fd_lblDifferences);
    lblDifferences.setText("Differences");
    fsDifferencesTree = new Tree(composite_8, SWT.BORDER);
    fsDifferencesTree.setHeaderVisible(true);
    FormData fd_tree_4 = new FormData();
    fd_tree_4.bottom = new FormAttachment(100);
    fd_tree_4.right = new FormAttachment(100);
    fd_tree_4.top = new FormAttachment(lblDifferences, 0);
    fd_tree_4.left = new FormAttachment(lblDifferences, 0, SWT.LEFT);
    fsDifferencesTree.setLayoutData(fd_tree_4);
    TreeColumn trclmnName = new TreeColumn(fsDifferencesTree, SWT.NONE);
    trclmnName.setWidth(330);
    trclmnName.setText("Name");
    TreeColumn trclmnPermissions = new TreeColumn(fsDifferencesTree, SWT.NONE);
    trclmnPermissions.setWidth(72);
    trclmnPermissions.setText("Permissions");
    TreeColumn trclmnGroup = new TreeColumn(fsDifferencesTree, SWT.NONE);
    trclmnGroup.setWidth(50);
    trclmnGroup.setText("Group");
    TreeColumn trclmnUser = new TreeColumn(fsDifferencesTree, SWT.NONE);
    trclmnUser.setWidth(50);
    trclmnUser.setText("User");
    TreeColumn trclmnSize = new TreeColumn(fsDifferencesTree, SWT.NONE);
    trclmnSize.setWidth(40);
    trclmnSize.setText("Size");
    TreeColumn trclmnModified = new TreeColumn(fsDifferencesTree, SWT.NONE);
    trclmnModified.setWidth(140);
    trclmnModified.setText("Modified");
    fsDiffSashForm.setWeights(new int[] { 1, 1, 3 });
    CTabItem tbtmApktool = new CTabItem(tabFolder, SWT.NONE);
    tbtmApktool.setText("Smali");
    Composite composite_3 = new Composite(tabFolder, SWT.NONE);
    tbtmApktool.setControl(composite_3);
    composite_3.setLayout(new FillLayout(SWT.HORIZONTAL));
    SashForm sashForm_1 = new SashForm(composite_3, SWT.NONE);
    smaliTree = new Tree(sashForm_1, SWT.BORDER);
    smaliTree.setLinesVisible(true);
    smaliTree.setHeaderVisible(true);
    smaliTree.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent arg0) {
            TreeItem[] items = smaliTree.getSelection();
            if (items.length > 0) {
                TreeItem sel = items[0];
                if (sel.getItemCount() == 0) {
                    String name = sel.getText();
                    setStatus("Loading: " + name);
                    TreeItem parent = sel.getParentItem();
                    String pkg = (parent == null) ? "" : parent.getText();
                    smaliController.loadSmaliSource(pkg, name);
                } else {
                    sel.setExpanded(true);
                }
                clearStatus();
            }
        }
    });
    smaliTabFolder = new CTabFolder(sashForm_1, SWT.BORDER);
    smaliTabFolder.setSimple(false);
    smaliTabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
    smaliTabSearchTab = new CTabItem(smaliTabFolder, SWT.NONE);
    smaliTabSearchTab.setText("Search");
    Composite composite_9 = new Composite(smaliTabFolder, SWT.NONE);
    smaliTabSearchTab.setControl(composite_9);
    GridLayout gl_composite_9 = new GridLayout(1, false);
    gl_composite_9.marginTop = 5;
    gl_composite_9.verticalSpacing = 0;
    gl_composite_9.marginHeight = 0;
    gl_composite_9.horizontalSpacing = 0;
    composite_9.setLayout(gl_composite_9);
    smaliSearchText = new Text(composite_9, SWT.BORDER);
    smaliSearchText.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent arg0) {
            if (arg0.character == 13) {
                smaliController.search();
            }
        }
    });
    smaliSearchText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    Composite composite_10 = new Composite(composite_9, SWT.NONE);
    GridLayout gl_composite_10 = new GridLayout(2, false);
    gl_composite_10.marginBottom = 5;
    gl_composite_10.marginHeight = 0;
    gl_composite_10.verticalSpacing = 0;
    gl_composite_10.marginWidth = 0;
    gl_composite_10.horizontalSpacing = 0;
    composite_10.setLayout(gl_composite_10);
    smaliSearchIgnoreCase = new Button(composite_10, SWT.CHECK);
    smaliSearchIgnoreCase.setBounds(0, 0, 93, 18);
    smaliSearchIgnoreCase.setText("Ignore Case");
    smaliSearchRegex = new Button(composite_10, SWT.CHECK);
    smaliSearchRegex.setBounds(0, 0, 93, 18);
    smaliSearchRegex.setText("Regex");
    smaliSearchTable = new Table(composite_9, SWT.BORDER | SWT.FULL_SELECTION);
    smaliSearchTable.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent arg0) {
            TableItem[] selected = smaliSearchTable.getSelection();
            if (selected.length > 0) {
                smaliController.loadSmaliSourceWithLineNumber((String) selected[0].getData(SmaliController.PACKAGE), (String) selected[0].getData(SmaliController.NAME), ((Integer) selected[0].getData(SmaliController.LINENUMBER)).intValue());
            }
        }
    });
    smaliSearchTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    smaliSearchTable.setBounds(0, 0, 3, 19);
    smaliSearchTable.setHeaderVisible(true);
    smaliSearchTable.setLinesVisible(true);
    TableColumn tblclmnClass_1 = new TableColumn(smaliSearchTable, SWT.NONE);
    tblclmnClass_1.setWidth(200);
    tblclmnClass_1.setText("Class");
    TableColumn tblclmnContents = new TableColumn(smaliSearchTable, SWT.NONE);
    tblclmnContents.setWidth(750);
    tblclmnContents.setText("Contents");
    StyledText styledText = new StyledText(smaliTabFolder, SWT.BORDER);
    sashForm_1.setWeights(new int[] { 1, 5 });
    CTabItem tbtmJavaToSmali = new CTabItem(tabFolder, SWT.NONE);
    tbtmJavaToSmali.setText("Java to Smali");
    Composite composite_13 = new Composite(tabFolder, SWT.NONE);
    tbtmJavaToSmali.setControl(composite_13);
    composite_13.setLayout(new FillLayout(SWT.HORIZONTAL));
    SashForm sashForm = new SashForm(composite_13, SWT.NONE);
    Composite composite_14 = new Composite(sashForm, SWT.NONE);
    GridLayout gl_composite_14 = new GridLayout(1, false);
    gl_composite_14.verticalSpacing = 0;
    gl_composite_14.marginWidth = 0;
    gl_composite_14.marginHeight = 0;
    gl_composite_14.horizontalSpacing = 0;
    composite_14.setLayout(gl_composite_14);
    Label lblJava = new Label(composite_14, SWT.NONE);
    lblJava.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    lblJava.setText("Java");
    javaToSmaliJavaStyledText = new StyledText(composite_14, SWT.BORDER | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL);
    javaToSmaliJavaStyledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    javaToSmaliJavaStyledText.setText("import android.util.Log;\n\npublic class OterTool {\n\n	// Youll need to include everything that would exist in a full \n	// java source file. I typically just write a class in Eclipse\n	// and allow it to handle all imports, and paste it here.\n\n	// You will also need to include the android.jar file in the \n	// classpath to use thing like 'Log'. This can be configured\n	// through the configuration dialog (File->Configure) or you\n	// can attempt to have otertool attempt to automatically add it\n	// for you through Java to Smali->Add android.jar to classpath\n\n	public static void main(String[] args) {\n		// Placing a method here, with its arguments will show you \n		// the calling convention, and allow you to easily paste\n		// the code in the smali class\n		oterToolMethod(\"calling argument\");\n		Log.e(\"Tag\", \"Test\");\n	}\n	\n	public static void oterToolMethod(String arg){\n		// You can paste this portion of the smali code directly in\n		// the end of the original package, and call it from everywhere\n		System.out.println(arg);\n	}\n}");
    //javaToSmaliJavaStyledText.addLineStyleListener(new JavaLineStyler());
    Composite composite_15 = new Composite(sashForm, SWT.NONE);
    GridLayout gl_composite_15 = new GridLayout(1, false);
    gl_composite_15.marginHeight = 0;
    gl_composite_15.verticalSpacing = 0;
    gl_composite_15.marginWidth = 0;
    gl_composite_15.horizontalSpacing = 0;
    composite_15.setLayout(gl_composite_15);
    Label lblSmali = new Label(composite_15, SWT.NONE);
    lblSmali.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    lblSmali.setText("Smali");
    javaToSmaliSmaliStyledText = new StyledText(composite_15, SWT.BORDER | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL);
    javaToSmaliSmaliStyledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    javaToSmaliSmaliStyledText.addLineStyleListener(new SmaliLineStyler());
    sashForm.setWeights(new int[] { 1, 1 });
    CTabItem tbtmPackageManager = new CTabItem(tabFolder, SWT.NONE);
    tbtmPackageManager.setText("Package Manager");
    Composite composite_4 = new Composite(tabFolder, SWT.NONE);
    tbtmPackageManager.setControl(composite_4);
    composite_4.setLayout(new FillLayout(SWT.HORIZONTAL));
    SashForm packageManagerSashForm = new SashForm(composite_4, SWT.NONE);
    apkTable = new ApkTable(packageManagerSashForm, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    apkTable.getTable().addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            logger.debug(apkTable.getTable().getSelection().length);
            packageManagerController.loadPackageDetails(apkTable.getTable().getSelection());
        }
    });
    Menu menu_5 = new Menu(apkTable.getTable());
    apkTable.getTable().setMenu(menu_5);
    MenuItem mntmInstall = new MenuItem(menu_5, SWT.NONE);
    mntmInstall.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            installApk();
            apkTable.loadPackages();
        }
    });
    mntmInstall.setText("Install APK");
    MenuItem mntmUninstall = new MenuItem(menu_5, SWT.NONE);
    mntmUninstall.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            setStatus("UnInstalling package: " + apkTable.getTable().getSelection()[0].getText(0));
            packageManagerController.uninstallPackages(apkTable.getTable().getSelection());
            clearStatus();
            apkTable.loadPackages();
        }
    });
    mntmUninstall.setText("Uninstall Package(s)");
    MenuItem mntmPullPackages = new MenuItem(menu_5, SWT.NONE);
    mntmPullPackages.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            String dir = GuiWorkshop.selectDirectory(shlOterTool);
            if (dir != null) {
                packageManagerController.pullPackages(dir);
            }
        }
    });
    mntmPullPackages.setText("Pull Package(s)");
    new MenuItem(menu_5, SWT.SEPARATOR);
    MenuItem mntmRefreshList = new MenuItem(menu_5, SWT.NONE);
    mntmRefreshList.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            apkTable.loadPackages();
        }
    });
    mntmRefreshList.setText("Refresh List");
    packageManagerTabFolder = new CTabFolder(packageManagerSashForm, SWT.BORDER | SWT.FLAT);
    packageManagerTabFolder.setSimple(false);
    packageManagerTabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
    CTabItem tbtmAapt = new CTabItem(packageManagerTabFolder, SWT.NONE);
    tbtmAapt.setText("Aapt");
    Composite composite_16 = new Composite(packageManagerTabFolder, SWT.NONE);
    tbtmAapt.setControl(composite_16);
    GridLayout gl_composite_16 = new GridLayout(1, false);
    gl_composite_16.verticalSpacing = 0;
    gl_composite_16.marginWidth = 0;
    gl_composite_16.marginHeight = 0;
    gl_composite_16.horizontalSpacing = 0;
    composite_16.setLayout(gl_composite_16);
    packageManagerStyledText = new StyledText(composite_16, SWT.BORDER | SWT.READ_ONLY | SWT.H_SCROLL | SWT.V_SCROLL);
    packageManagerStyledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    CTabItem tbtmFiles = new CTabItem(packageManagerTabFolder, SWT.NONE);
    tbtmFiles.setText("Files");
    SashForm sashForm_2 = new SashForm(packageManagerTabFolder, SWT.NONE);
    tbtmFiles.setControl(sashForm_2);
    Composite composite_17 = new Composite(sashForm_2, SWT.NONE);
    GridLayout gl_composite_17 = new GridLayout(1, false);
    gl_composite_17.verticalSpacing = 0;
    gl_composite_17.marginWidth = 0;
    gl_composite_17.marginHeight = 0;
    gl_composite_17.horizontalSpacing = 0;
    composite_17.setLayout(gl_composite_17);
    packageManagerFilesTree = new Tree(composite_17, SWT.BORDER);
    packageManagerFilesTree.setHeaderVisible(true);
    packageManagerFilesTree.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent arg0) {
            try {
                Tree tree = packageManagerFilesTree;
                if (tree.getSelectionCount() == 1) {
                    TreeItem[] items = tree.getSelection();
                    FsNode node = (FsNode) items[0].getData(FsNode.class.getName());
                    for (CTabItem cti : packageManagerFilesTabs.getItems()) {
                        if (cti.getText().equals(node.getName())) {
                            packageManagerFilesTabs.setSelection(cti);
                            return;
                        }
                    }
                    logger.debug("Selected item: " + node.toString());
                    packageManagerController.loadFileContentsToTab(node);
                }
            } catch (Exception e) {
                logger.error("Could not load file: ", e);
                GuiWorkshop.messageDialog(shlOterTool, "Could not load file: " + e.getMessage());
            }
        }
    });
    packageManagerFilesTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    Menu menu_9 = new Menu(packageManagerFilesTree);
    packageManagerFilesTree.setMenu(menu_9);
    MenuItem mntmSqlite = new MenuItem(menu_9, SWT.NONE);
    mntmSqlite.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (packageManagerFilesTree.getSelectionCount() == 1) {
                try {
                    TreeItem[] items = packageManagerFilesTree.getSelection();
                    FsNode node = (FsNode) items[0].getData(FsNode.class.getName());
                    packageManagerController.loadFileContentsToSQLiteTab(node);
                } catch (Exception e) {
                    logger.error("Could not load file: ", e);
                    GuiWorkshop.messageDialog(shlOterTool, "Could not load file: " + e.getMessage());
                }
            }
        }
    });
    mntmSqlite.setText("SQLite view");
    MenuItem mntmHexView = new MenuItem(menu_9, SWT.NONE);
    mntmHexView.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (packageManagerFilesTree.getSelectionCount() == 1) {
                try {
                    TreeItem[] items = packageManagerFilesTree.getSelection();
                    FsNode node = (FsNode) items[0].getData(FsNode.class.getName());
                    packageManagerController.loadFileContentsToHexTab(node);
                } catch (Exception e) {
                    logger.error("Could not load file: ", e);
                    GuiWorkshop.messageDialog(shlOterTool, "Could not load file: " + e.getMessage());
                }
            }
        }
    });
    mntmHexView.setText("Hex view");
    MenuItem mntmTextView = new MenuItem(menu_9, SWT.NONE);
    mntmTextView.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (packageManagerFilesTree.getSelectionCount() == 1) {
                try {
                    TreeItem[] items = packageManagerFilesTree.getSelection();
                    FsNode node = (FsNode) items[0].getData(FsNode.class.getName());
                    packageManagerController.loadFileContentsToTextTab(node);
                } catch (Exception e) {
                    logger.error("Could not load file: ", e);
                    GuiWorkshop.messageDialog(shlOterTool, "Could not load file: " + e.getMessage());
                }
            }
        }
    });
    mntmTextView.setText("Text view");
    MenuItem mntmSaveFileView = new MenuItem(menu_9, SWT.NONE);
    mntmSaveFileView.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (packageManagerFilesTree.getSelectionCount() == 1) {
                try {
                    TreeItem[] items = packageManagerFilesTree.getSelection();
                    FsNode node = (FsNode) items[0].getData(FsNode.class.getName());
                    String file = GuiWorkshop.selectSaveFile(shlOterTool, new String[] {});
                    packageManagerController.saveFileAs(node, file);
                    GuiWorkshop.messageDialog(shlOterTool, "Your file has been saved.");
                } catch (Exception e) {
                    logger.error("Could not load file: ", e);
                    GuiWorkshop.messageDialog(shlOterTool, "Could not save file: " + e.getMessage());
                }
            }
        }
    });
    mntmSaveFileView.setText("Save File...");
    Composite composite_18 = new Composite(sashForm_2, SWT.NONE);
    GridLayout gl_composite_18 = new GridLayout(1, false);
    gl_composite_18.verticalSpacing = 0;
    gl_composite_18.marginWidth = 0;
    gl_composite_18.marginHeight = 0;
    gl_composite_18.horizontalSpacing = 0;
    composite_18.setLayout(gl_composite_18);
    sashForm_2.setWeights(new int[] { 197, 525 });
    packageManagerFilesTabs = new CTabFolder(composite_18, SWT.BORDER);
    packageManagerFilesTabs.setSimple(false);
    packageManagerFilesTabs.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    packageManagerFilesTabs.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT));
    packageManagerAndroidManifestTab = new CTabItemWithTreeForAndroidManifest(packageManagerTabFolder, SWT.NONE);
    packageManagerAndroidManifestTab.setText("AndroidManifest");
    packageManagerSashForm.setWeights(new int[] { 1, 2 });
    FormData fd_statusLabel = new FormData();
    fd_statusLabel.bottom = new FormAttachment(100, -2);
    fd_statusLabel.left = new FormAttachment(tabFolder, 0, SWT.LEFT);
    fd_statusLabel.right = new FormAttachment(100);
    statusLabel.setLayoutData(fd_statusLabel);
    statusLabel.setText("Welcome");
}
Also used : CTabFolder(org.eclipse.swt.custom.CTabFolder) TreeItem(org.eclipse.swt.widgets.TreeItem) KeyAdapter(org.eclipse.swt.events.KeyAdapter) Label(org.eclipse.swt.widgets.Label) MouseWheelListener(org.eclipse.swt.events.MouseWheelListener) DisposeEvent(org.eclipse.swt.events.DisposeEvent) CTabItem(org.eclipse.swt.custom.CTabItem) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Tree(org.eclipse.swt.widgets.Tree) FormAttachment(org.eclipse.swt.layout.FormAttachment) FormData(org.eclipse.swt.layout.FormData) StyledText(org.eclipse.swt.custom.StyledText) BuildAndSignApkBean(com.wuntee.oter.view.bean.BuildAndSignApkBean) FillLayout(org.eclipse.swt.layout.FillLayout) TableColumn(org.eclipse.swt.widgets.TableColumn) File(java.io.File) SelectionListener(org.eclipse.swt.events.SelectionListener) DisposeListener(org.eclipse.swt.events.DisposeListener) CTabItemWithTreeForAndroidManifest(com.wuntee.oter.view.widgets.CTabItemWithTreeForAndroidManifest) KeyEvent(org.eclipse.swt.events.KeyEvent) Shell(org.eclipse.swt.widgets.Shell) GridLayout(org.eclipse.swt.layout.GridLayout) SmaliLineStyler(com.wuntee.oter.styler.SmaliLineStyler) TreeColumn(org.eclipse.swt.widgets.TreeColumn) Menu(org.eclipse.swt.widgets.Menu) CreateAvdBean(com.wuntee.oter.view.bean.CreateAvdBean) FormLayout(org.eclipse.swt.layout.FormLayout) Table(org.eclipse.swt.widgets.Table) ApkTable(com.wuntee.oter.view.widgets.ApkTable) MouseEvent(org.eclipse.swt.events.MouseEvent) FsNode(com.wuntee.oter.fs.FsNode) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) MouseAdapter(org.eclipse.swt.events.MouseAdapter) MenuItem(org.eclipse.swt.widgets.MenuItem) StyledText(org.eclipse.swt.custom.StyledText) Text(org.eclipse.swt.widgets.Text) Point(org.eclipse.swt.graphics.Point) SashForm(org.eclipse.swt.custom.SashForm) PackageBean(com.wuntee.oter.packagemanager.PackageBean) GridData(org.eclipse.swt.layout.GridData) ApkTable(com.wuntee.oter.view.widgets.ApkTable) BackgroundCommand(com.wuntee.oter.command.BackgroundCommand)

Example 55 with KeyAdapter

use of org.eclipse.swt.events.KeyAdapter in project otertool by wuntee.

the class BuildAndSignApkDialog method createContents.

/**
	 * Create contents of the dialog.
	 */
private void createContents() {
    shlBuildAndSign = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.RESIZE);
    shlBuildAndSign.setSize(420, 471);
    shlBuildAndSign.setText("Build and sign APK");
    GridLayout gl_shlBuildAndSign = new GridLayout(1, false);
    gl_shlBuildAndSign.horizontalSpacing = 0;
    gl_shlBuildAndSign.marginBottom = 5;
    gl_shlBuildAndSign.marginRight = 5;
    gl_shlBuildAndSign.marginLeft = 5;
    gl_shlBuildAndSign.verticalSpacing = 0;
    gl_shlBuildAndSign.marginWidth = 0;
    gl_shlBuildAndSign.marginTop = 5;
    gl_shlBuildAndSign.marginHeight = 0;
    shlBuildAndSign.setLayout(gl_shlBuildAndSign);
    Label lblDestinationApkFile = new Label(shlBuildAndSign, SWT.NONE);
    lblDestinationApkFile.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
    lblDestinationApkFile.setText("Destination APK file:");
    Composite composite = new Composite(shlBuildAndSign, SWT.NONE);
    GridLayout gl_composite = new GridLayout(2, false);
    gl_composite.horizontalSpacing = 0;
    gl_composite.verticalSpacing = 0;
    gl_composite.marginWidth = 0;
    gl_composite.marginHeight = 0;
    composite.setLayout(gl_composite);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    apkFileTextbox = new Text(composite, SWT.BORDER);
    apkFileTextbox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    btnSelectFile = new Button(composite, SWT.NONE);
    btnSelectFile.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    btnSelectFile.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            String file = GuiWorkshop.selectSaveFile(getParent(), new String[] { "*.apk" });
            if (file != null) {
                apkFileTextbox.setText(file);
            }
        }
    });
    btnSelectFile.setText("Select File");
    btnSignApk = new Button(shlBuildAndSign, SWT.CHECK);
    btnSignApk.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (btnSignApk.getSelection() == false) {
                for (Control c : signObj) {
                    logger.debug(c);
                    c.setEnabled(false);
                }
            } else {
                for (Control c : signObj) {
                    c.setEnabled(true);
                }
            }
        }
    });
    btnSignApk.setText("Sign APK");
    new Label(shlBuildAndSign, SWT.NONE);
    final Button btnGenerateKeystoreOn = new Button(shlBuildAndSign, SWT.CHECK);
    btnGenerateKeystoreOn.setEnabled(false);
    btnGenerateKeystoreOn.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1));
    btnGenerateKeystoreOn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (btnGenerateKeystoreOn.getSelection() == true) {
                for (Control c : keystoreObj) {
                    logger.debug(c);
                    c.setEnabled(false);
                }
            } else {
                for (Control c : keystoreObj) {
                    c.setEnabled(true);
                }
            }
        }
    });
    btnGenerateKeystoreOn.setText("Automatically generate keystore");
    lblKeystoreFile = new Label(shlBuildAndSign, SWT.NONE);
    lblKeystoreFile.setEnabled(false);
    lblKeystoreFile.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
    lblKeystoreFile.setText("Keystore file:");
    composite_1 = new Composite(shlBuildAndSign, SWT.NONE);
    composite_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    GridLayout gl_composite_1 = new GridLayout(3, false);
    gl_composite_1.verticalSpacing = 0;
    gl_composite_1.marginWidth = 0;
    gl_composite_1.marginHeight = 0;
    gl_composite_1.horizontalSpacing = 0;
    composite_1.setLayout(gl_composite_1);
    certFileTextbox = new Text(composite_1, SWT.BORDER);
    certFileTextbox.setEnabled(false);
    certFileTextbox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    Button btnNewButton = new Button(composite_1, SWT.NONE);
    btnNewButton.setEnabled(false);
    btnNewButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            String file = GuiWorkshop.selectFile(getParent(), new String[] { "*" });
            if (file != null) {
                certFileTextbox.setText(file);
            }
        }
    });
    btnNewButton.setText("Select File");
    new Label(composite_1, SWT.NONE);
    lblPassword = new Label(shlBuildAndSign, SWT.NONE);
    lblPassword.setEnabled(false);
    lblPassword.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
    lblPassword.setText("Password:");
    composite_2 = new Composite(shlBuildAndSign, SWT.NONE);
    composite_2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    GridLayout gl_composite_2 = new GridLayout(1, false);
    gl_composite_2.marginBottom = 5;
    gl_composite_2.marginTop = 5;
    gl_composite_2.marginHeight = 0;
    gl_composite_2.marginWidth = 0;
    gl_composite_2.verticalSpacing = 0;
    composite_2.setLayout(gl_composite_2);
    passwordTextbox = new Text(composite_2, SWT.BORDER | SWT.PASSWORD);
    passwordTextbox.setEnabled(false);
    passwordTextbox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    passwordTextbox.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent arg0) {
            // Load the keystore
            try {
                KeyStore ks = KeyStore.getInstance(KeyStoreUtil.niceStoreTypeName(KeyStore.getDefaultType()));
                ks.load(new File(certFileTextbox.getText()).toURI().toURL().openStream(), passwordTextbox.getTextChars());
                Enumeration<String> aliases = ks.aliases();
                aliasTable.clearAll();
                while (aliases.hasMoreElements()) {
                    String alias = aliases.nextElement();
                    Certificate cert = ks.getCertificate(alias);
                    byte[] encCertInfo = cert.getEncoded();
                    MessageDigest md = MessageDigest.getInstance("MD5");
                    byte[] digest = md.digest(encCertInfo);
                    String key = toHexString(digest);
                    TableItem tableItem = new TableItem(aliasTable, SWT.NONE);
                    tableItem.setText(new String[] { alias, ks.getCreationDate(alias).toString(), key });
                }
            } catch (Exception e) {
            // Do nothing
            }
        }
    });
    lblCertificate = new Label(shlBuildAndSign, SWT.NONE);
    lblCertificate.setEnabled(false);
    lblCertificate.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
    lblCertificate.setText("Certificate:");
    aliasTable = new Table(shlBuildAndSign, SWT.BORDER | SWT.FULL_SELECTION);
    aliasTable.setEnabled(false);
    GridData gd_aliasTable = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
    gd_aliasTable.heightHint = 72;
    aliasTable.setLayoutData(gd_aliasTable);
    aliasTable.setHeaderVisible(true);
    aliasTable.setLinesVisible(true);
    TableColumn tblclmnName = new TableColumn(aliasTable, SWT.NONE);
    tblclmnName.setWidth(100);
    tblclmnName.setText("Name");
    TableColumn tblclmnDate = new TableColumn(aliasTable, SWT.NONE);
    tblclmnDate.setWidth(100);
    tblclmnDate.setText("Date");
    TableColumn tblclmnChecksum = new TableColumn(aliasTable, SWT.NONE);
    tblclmnChecksum.setWidth(149);
    tblclmnChecksum.setText("Checksum");
    composite_3 = new Composite(shlBuildAndSign, SWT.NONE);
    GridLayout gl_composite_3 = new GridLayout(2, false);
    gl_composite_3.horizontalSpacing = 0;
    gl_composite_3.marginWidth = 0;
    gl_composite_3.marginHeight = 0;
    gl_composite_3.verticalSpacing = 0;
    composite_3.setLayout(gl_composite_3);
    composite_3.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 1, 1));
    Button btnSelect = new Button(composite_3, SWT.NONE);
    btnSelect.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            if (apkFileTextbox.getText().trim().equals("")) {
                GuiWorkshop.messageError(shlBuildAndSign, "Please select a filename.");
                return;
            }
            // If we want to sign
            if (btnSignApk.getSelection() == true) {
                // If we need to generate a keystore
                if (btnGenerateKeystoreOn.getSelection() == true) {
                    try {
                        String alias = OterStatics.SOME_STRING;
                        String password = OterStatics.SOME_STRING;
                        KeyStore ks = SmaliWorkshop.createKeystoreWithSecretKey(alias);
                        File ksFile = SmaliWorkshop.writeKeystoreToTemporaryFile(ks, password);
                        result.setApkFilename(apkFileTextbox.getText());
                        result.setSign(btnSignApk.getSelection());
                        result.setCertFilename(ksFile.getAbsolutePath());
                        result.setPassword(password);
                        result.setCertAlias(alias);
                        shlBuildAndSign.close();
                    } catch (Exception e) {
                        logger.error("Error generating keystore: ", e);
                        GuiWorkshop.messageError(shlBuildAndSign, "There was an error generating the keystore: " + e.getMessage());
                    }
                // If we dont need to generate a keystore
                } else {
                    if (aliasTable.getSelection().length > 0) {
                        result.setApkFilename(apkFileTextbox.getText());
                        result.setSign(btnSignApk.getSelection());
                        result.setCertFilename(certFileTextbox.getText());
                        result.setPassword(passwordTextbox.getText());
                        result.setCertAlias(aliasTable.getSelection()[0].getText(0));
                        result.setSign(btnSignApk.getSelection());
                        shlBuildAndSign.close();
                    } else {
                        logger.error("No alias selected.");
                        GuiWorkshop.messageError(shlBuildAndSign, "Please select an alias.");
                        return;
                    }
                }
            // We dont need to sign
            } else {
                result.setApkFilename(apkFileTextbox.getText());
                result.setSign(btnSignApk.getSelection());
                shlBuildAndSign.close();
            }
        }
    });
    btnSelect.setText("Save");
    Button btnCancel = new Button(composite_3, SWT.NONE);
    btnCancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            result = null;
            shlBuildAndSign.close();
        }
    });
    btnCancel.setText("Cancel");
    keystoreObj = new Control[] { certFileTextbox, passwordTextbox, aliasTable, btnNewButton, lblKeystoreFile, lblCertificate, lblPassword };
    signObj = new Control[] { btnGenerateKeystoreOn, certFileTextbox, passwordTextbox, aliasTable, btnNewButton, lblKeystoreFile, lblCertificate, lblPassword };
}
Also used : Enumeration(java.util.Enumeration) Table(org.eclipse.swt.widgets.Table) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) KeyAdapter(org.eclipse.swt.events.KeyAdapter) TableItem(org.eclipse.swt.widgets.TableItem) Label(org.eclipse.swt.widgets.Label) Text(org.eclipse.swt.widgets.Text) KeyStore(java.security.KeyStore) TableColumn(org.eclipse.swt.widgets.TableColumn) KeyEvent(org.eclipse.swt.events.KeyEvent) Shell(org.eclipse.swt.widgets.Shell) GridLayout(org.eclipse.swt.layout.GridLayout) Control(org.eclipse.swt.widgets.Control) Button(org.eclipse.swt.widgets.Button) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) MessageDigest(java.security.MessageDigest) File(java.io.File) Certificate(java.security.cert.Certificate)

Aggregations

KeyAdapter (org.eclipse.swt.events.KeyAdapter)80 KeyEvent (org.eclipse.swt.events.KeyEvent)80 GridData (org.eclipse.swt.layout.GridData)50 GridLayout (org.eclipse.swt.layout.GridLayout)40 Composite (org.eclipse.swt.widgets.Composite)39 SelectionEvent (org.eclipse.swt.events.SelectionEvent)33 Text (org.eclipse.swt.widgets.Text)30 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)28 Label (org.eclipse.swt.widgets.Label)24 Button (org.eclipse.swt.widgets.Button)20 TableViewer (org.eclipse.jface.viewers.TableViewer)18 ModifyEvent (org.eclipse.swt.events.ModifyEvent)17 ModifyListener (org.eclipse.swt.events.ModifyListener)16 FocusEvent (org.eclipse.swt.events.FocusEvent)15 Point (org.eclipse.swt.graphics.Point)15 Table (org.eclipse.swt.widgets.Table)14 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)12 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)12 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)12 FocusAdapter (org.eclipse.swt.events.FocusAdapter)11