Search in sources :

Example 11 with IBinary

use of org.eclipse.cdt.core.model.IBinary in project linuxtools by eclipse.

the class RemoteProxyCMainTab method handleSearchButtonSelected.

/**
 * Show a dialog that lists all main types
 */
@Override
protected void handleSearchButtonSelected() {
    if (getCProject() == null) {
        MessageDialog.openInformation(getShell(), LaunchMessages.CMainTab_Project_required, LaunchMessages.CMainTab_Enter_project_before_searching_for_program);
        return;
    }
    ILabelProvider programLabelProvider = new CElementLabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof IBinary) {
                IBinary bin = (IBinary) element;
                StringBuffer name = new StringBuffer();
                name.append(bin.getPath().lastSegment());
                return name.toString();
            }
            return super.getText(element);
        }

        @Override
        public Image getImage(Object element) {
            if (!(element instanceof ICElement)) {
                return super.getImage(element);
            }
            ICElement celement = (ICElement) element;
            if (celement.getElementType() == ICElement.C_BINARY) {
                IBinary belement = (IBinary) celement;
                if (belement.isExecutable()) {
                    return DebugUITools.getImage(IDebugUIConstants.IMG_ACT_RUN);
                }
            }
            return super.getImage(element);
        }
    };
    ILabelProvider qualifierLabelProvider = new CElementLabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof IBinary) {
                IBinary bin = (IBinary) element;
                StringBuffer name = new StringBuffer();
                name.append(bin.getCPU() + // $NON-NLS-1$ //$NON-NLS-2$
                (bin.isLittleEndian() ? "le" : "be"));
                // $NON-NLS-1$
                name.append(" - ");
                name.append(bin.getPath().toString());
                return name.toString();
            }
            return super.getText(element);
        }
    };
    TwoPaneElementSelector dialog = new TwoPaneElementSelector(getShell(), programLabelProvider, qualifierLabelProvider);
    dialog.setElements(getBinaryFiles(getCProject()));
    dialog.setMessage(LaunchMessages.CMainTab_Choose_program_to_run);
    dialog.setTitle(LaunchMessages.CMainTab_Program_Selection);
    dialog.setUpperListLabel(LaunchMessages.Launch_common_BinariesColon);
    dialog.setLowerListLabel(LaunchMessages.Launch_common_QualifierColon);
    dialog.setMultipleSelection(false);
    // dialog.set
    if (dialog.open() == Window.OK) {
        IBinary binary = (IBinary) dialog.getFirstResult();
        fProgText.setText(binary.getResource().getProjectRelativePath().toString());
    }
}
Also used : CElementLabelProvider(org.eclipse.cdt.ui.CElementLabelProvider) ILabelProvider(org.eclipse.jface.viewers.ILabelProvider) IBinary(org.eclipse.cdt.core.model.IBinary) ICElement(org.eclipse.cdt.core.model.ICElement) TwoPaneElementSelector(org.eclipse.ui.dialogs.TwoPaneElementSelector)

Example 12 with IBinary

use of org.eclipse.cdt.core.model.IBinary in project linuxtools by eclipse.

the class AbstractTest method createProjectAndBuild.

protected ICProject createProjectAndBuild(Bundle bundle, String projname) throws CoreException, URISyntaxException, InvocationTargetException, InterruptedException, IOException {
    ICProject proj = createProject(bundle, projname);
    buildProject(proj);
    IBinary[] binaries = null;
    do {
        Thread.sleep(500);
        binaries = proj.getBinaryContainer().getBinaries();
    } while (binaries == null || binaries.length < 1);
    return proj;
}
Also used : ICProject(org.eclipse.cdt.core.model.ICProject) IBinary(org.eclipse.cdt.core.model.IBinary)

Aggregations

IBinary (org.eclipse.cdt.core.model.IBinary)12 ICProject (org.eclipse.cdt.core.model.ICProject)7 CoreException (org.eclipse.core.runtime.CoreException)5 CElementLabelProvider (org.eclipse.cdt.ui.CElementLabelProvider)4 IProject (org.eclipse.core.resources.IProject)4 IResource (org.eclipse.core.resources.IResource)4 ILabelProvider (org.eclipse.jface.viewers.ILabelProvider)4 TwoPaneElementSelector (org.eclipse.ui.dialogs.TwoPaneElementSelector)4 CModelException (org.eclipse.cdt.core.model.CModelException)3 IFile (org.eclipse.core.resources.IFile)3 IPath (org.eclipse.core.runtime.IPath)3 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 ICElement (org.eclipse.cdt.core.model.ICElement)2 Path (org.eclipse.core.runtime.Path)2 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 URI (java.net.URI)1 Collections (java.util.Collections)1 List (java.util.List)1 CoreModel (org.eclipse.cdt.core.model.CoreModel)1