Search in sources :

Example 6 with LocalFile

use of org.eclipse.core.internal.filesystem.local.LocalFile in project translationstudio8 by heartsome.

the class ConversionWizardPage method createFilesGroup.

/**
	 * 创建文件列表区域
	 * @param contents
	 *            ;
	 */
private Composite createFilesGroup(Composite contents) {
    Composite filesComposite = new Composite(contents, SWT.NONE);
    GridLayout gd = new GridLayout(2, false);
    gd.marginWidth = 0;
    filesComposite.setLayout(gd);
    filesComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    filesTable = new Table(filesComposite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
    GridData tableData = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL);
    tableData.heightHint = 100;
    filesTable.setLayoutData(tableData);
    filesTable.setLinesVisible(true);
    filesTable.setHeaderVisible(true);
    filesTable.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            doSelectedEvent();
        }
    });
    tableViewer = new TableViewer(filesTable);
    lineNumColumn = new TableViewerColumn(tableViewer, SWT.NONE).getColumn();
    lineNumColumn.setText(Messages.getString("wizard.ConversionWizardPage.lineNumColumn"));
    sourceColumn = new TableViewerColumn(tableViewer, SWT.NONE).getColumn();
    sourceColumn.setText(Messages.getString("wizard.ConversionWizardPage.sourceColumn"));
    formatColumn = new TableViewerColumn(tableViewer, SWT.NONE).getColumn();
    formatColumn.setText(Messages.getString("wizard.ConversionWizardPage.formatColumn"));
    srcEncColumn = new TableViewerColumn(tableViewer, SWT.NONE).getColumn();
    srcEncColumn.setText(Messages.getString("wizard.ConversionWizardPage.srcEncColumn"));
    IValueProperty[] valueProperties = BeanProperties.values(ConversionConfigBean.class, new String[] { "index", "source", "fileType", "srcEncoding" });
    ViewerSupport.bind(tableViewer, new WritableList(conversionConfigBeans, ConversionConfigBean.class), valueProperties);
    filesComposite.addPaintListener(new PaintListener() {

        public void paintControl(PaintEvent arg0) {
            int width = filesTable.getClientArea().width;
            lineNumColumn.setWidth(width * 1 / 10);
            sourceColumn.setWidth(width * 5 / 10);
            formatColumn.setWidth(width * 3 / 10);
            srcEncColumn.setWidth(width * 1 / 10);
        }
    });
    Composite opComp = new Composite(filesComposite, SWT.NONE);
    GridLayout opCompGl = new GridLayout();
    opCompGl.marginWidth = 0;
    opCompGl.marginLeft = 0;
    opCompGl.marginTop = 0;
    opCompGl.marginHeight = 0;
    opComp.setLayout(opCompGl);
    GridData gd_opComp = new GridData();
    gd_opComp.verticalAlignment = SWT.TOP;
    opComp.setLayoutData(gd_opComp);
    Button addBt = new Button(opComp, SWT.NONE);
    addBt.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    addBt.setText(Messages.getString("wizard.ConversionWizardPage.addbutton"));
    addBt.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            FileFolderSelectionDialog dialog = new FileFolderSelectionDialog(getShell(), true, IResource.FILE) {

                // 打开对话框时展开树形目录
                public void create() {
                    super.create();
                    super.getTreeViewer().expandAll();
                }
            };
            dialog.setMessage(Messages.getString("wizard.ConversionWizardPage.selectfiledialog.message"));
            dialog.setTitle(Messages.getString("wizard.ConversionWizardPage.selectfiledialog.title"));
            dialog.setDoubleClickSelects(true);
            try {
                dialog.setInput(EFS.getStore(ResourcesPlugin.getWorkspace().getRoot().getLocationURI()));
            } catch (CoreException e1) {
                LOGGER.error("", e1);
                e1.printStackTrace();
            }
            dialog.addFilter(new ViewerFilter() {

                @Override
                public boolean select(Viewer viewer, Object parentElement, Object element) {
                    if (element instanceof LocalFile) {
                        LocalFile folder = (LocalFile) element;
                        if (folder.getName().equalsIgnoreCase(".hsConfig") || folder.getName().equalsIgnoreCase(".metadata")) {
                            return false;
                        }
                        String projectPath = currentProject.getLocation().toOSString();
                        if (projectPath.equals(folder.toString())) {
                            return true;
                        }
                        String xliffFolderPath = folder.toString();
                        String path1 = projectPath + File.separator + Constant.FOLDER_SRC;
                        if (xliffFolderPath.startsWith(path1)) {
                            for (ConversionConfigBean bean : conversionConfigBeans) {
                                if (xliffFolderPath.indexOf(bean.getSource()) != -1) {
                                    return false;
                                }
                            }
                            return true;
                        }
                    }
                    return false;
                }
            });
            dialog.create();
            dialog.open();
            if (dialog.getResult() != null) {
                Object[] selectFiles = dialog.getResult();
                for (Object selectedFile : selectFiles) {
                    LocalFile folder = (LocalFile) selectedFile;
                    ConverterViewModel model = new ConverterViewModel(Activator.getContext(), Converter.DIRECTION_POSITIVE);
                    Object adapter = Platform.getAdapterManager().getAdapter(ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(Path.fromOSString(folder.toString())), IConversionItem.class);
                    IConversionItem sourceItem = null;
                    if (adapter instanceof IConversionItem) {
                        sourceItem = (IConversionItem) adapter;
                    }
                    // 记住所选择的文件
                    model.setConversionItem(sourceItem);
                    ConversionConfigBean bean = model.getConfigBean();
                    // 初始化源文件路径
                    bean.setSource(ResourceUtils.toWorkspacePath(folder.toString()));
                    // 初始化源语言
                    bean.setSrcLang(srcLang);
                    bean.setTgtLangList(targetlanguage);
                    if (targetlanguage != null && targetlanguage.size() > 0) {
                        List<Language> lang = new ArrayList<Language>();
                        lang.add(targetlanguage.get(0));
                        bean.setHasSelTgtLangList(lang);
                    }
                    bean.setReplaceTarget(isReplaceTarget);
                    bean.setInitSegmenter(srxFile.getText());
                    conversionConfigBeans.add(bean);
                    converterViewModels.add(model);
                }
                loadFiles();
                validate();
                tableViewer.refresh();
            }
        }
    });
    Button removeBt = new Button(opComp, SWT.NONE);
    removeBt.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    removeBt.setText(Messages.getString("wizard.ConversionWizardPage.removebutton"));
    removeBt.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (conversionConfigBeans.size() == 0) {
                return;
            }
            ISelection sel = tableViewer.getSelection();
            if (sel.isEmpty()) {
                MessageDialog.openError(getShell(), Messages.getString("wizard.ConversionWizardPage.removebutton.msg1.title"), Messages.getString("wizard.ConversionWizardPage.removebutton.msg1"));
                return;
            }
            if (sel instanceof IStructuredSelection) {
                IStructuredSelection ssel = (IStructuredSelection) sel;
                Object[] objs = ssel.toArray();
                int index = conversionConfigBeans.indexOf(ssel.getFirstElement());
                index -= ssel.size();
                index = index < 0 ? 0 : index;
                for (Object obj : objs) {
                    int i = conversionConfigBeans.indexOf(obj);
                    conversionConfigBeans.remove(i);
                    converterViewModels.remove(i);
                }
                loadFiles();
                tableViewer.refresh();
                if (!conversionConfigBeans.isEmpty()) {
                    tableViewer.getTable().select(index);
                    doSelectedEvent();
                }
                validate();
            }
        }
    });
    return filesComposite;
}
Also used : ViewerFilter(org.eclipse.jface.viewers.ViewerFilter) TableViewer(org.eclipse.jface.viewers.TableViewer) Viewer(org.eclipse.jface.viewers.Viewer) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) GridLayout(org.eclipse.swt.layout.GridLayout) Language(net.heartsome.cat.common.locale.Language) ConversionConfigBean(net.heartsome.cat.convert.ui.model.ConversionConfigBean) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ISelection(org.eclipse.jface.viewers.ISelection) WritableList(org.eclipse.core.databinding.observable.list.WritableList) List(java.util.List) ArrayList(java.util.ArrayList) IValueProperty(org.eclipse.core.databinding.property.value.IValueProperty) FileFolderSelectionDialog(net.heartsome.cat.common.ui.dialog.FileFolderSelectionDialog) TableViewerColumn(org.eclipse.jface.viewers.TableViewerColumn) Table(org.eclipse.swt.widgets.Table) PaintEvent(org.eclipse.swt.events.PaintEvent) Composite(org.eclipse.swt.widgets.Composite) PaintListener(org.eclipse.swt.events.PaintListener) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) LocalFile(org.eclipse.core.internal.filesystem.local.LocalFile) CoreException(org.eclipse.core.runtime.CoreException) WritableList(org.eclipse.core.databinding.observable.list.WritableList) GridData(org.eclipse.swt.layout.GridData) ConverterViewModel(net.heartsome.cat.convert.ui.model.ConverterViewModel) TableViewer(org.eclipse.jface.viewers.TableViewer) IConversionItem(net.heartsome.cat.convert.ui.model.IConversionItem)

Example 7 with LocalFile

use of org.eclipse.core.internal.filesystem.local.LocalFile in project linuxtools by eclipse.

the class AbstractTest method createConfiguration.

protected ILaunchConfiguration createConfiguration(IProject proj) throws CoreException {
    String projectName = proj.getName();
    String binPath = "";
    ILaunchConfigurationType configType = getLaunchConfigType();
    ILaunchConfigurationWorkingCopy wc = configType.newInstance(null, getLaunchManager().generateLaunchConfigurationName(projectName));
    if (proj.getLocation() == null) {
        IFileStore fileStore = null;
        try {
            fileStore = EFS.getStore(new URI(proj.getLocationURI() + BIN_DIR + IPath.SEPARATOR + projectName));
        } catch (URISyntaxException e) {
            fail(NLS.bind(Messages.getString("AbstractTest.No_binary"), // $NON-NLS-1$
            projectName));
        }
        if ((fileStore instanceof LocalFile)) {
            fail(NLS.bind(Messages.getString("AbstractTest.No_binary"), // $NON-NLS-1$
            projectName));
        }
        binPath = EFSExtensionManager.getDefault().getPathFromURI(proj.getLocationURI()) + BIN_DIR + IPath.SEPARATOR + proj.getName();
    } else {
        IResource bin = proj.findMember(new Path(BIN_DIR).append(projectName));
        if (bin == null) {
            fail(NLS.bind(Messages.getString("AbstractTest.No_binary"), // $NON-NLS-1$
            projectName));
        }
        binPath = bin.getProjectRelativePath().toString();
        wc.setMappedResources(new IResource[] { bin, proj });
    }
    wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROGRAM_NAME, binPath);
    wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_PROJECT_NAME, projectName);
    wc.setAttribute(ICDTLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, (String) null);
    // Make launch run in foreground
    wc.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false);
    setProfileAttributes(wc);
    return wc.doSave();
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) LocalFile(org.eclipse.core.internal.filesystem.local.LocalFile) ILaunchConfigurationType(org.eclipse.debug.core.ILaunchConfigurationType) IFileStore(org.eclipse.core.filesystem.IFileStore) ILaunchConfigurationWorkingCopy(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI) IResource(org.eclipse.core.resources.IResource)

Aggregations

LocalFile (org.eclipse.core.internal.filesystem.local.LocalFile)7 FileFolderSelectionDialog (net.heartsome.cat.common.ui.dialog.FileFolderSelectionDialog)6 CoreException (org.eclipse.core.runtime.CoreException)6 Viewer (org.eclipse.jface.viewers.Viewer)5 ViewerFilter (org.eclipse.jface.viewers.ViewerFilter)5 SelectionEvent (org.eclipse.swt.events.SelectionEvent)5 IFile (org.eclipse.core.resources.IFile)4 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)4 GridData (org.eclipse.swt.layout.GridData)3 Button (org.eclipse.swt.widgets.Button)3 Composite (org.eclipse.swt.widgets.Composite)3 ISelection (org.eclipse.jface.viewers.ISelection)2 TableViewer (org.eclipse.jface.viewers.TableViewer)2 GridLayout (org.eclipse.swt.layout.GridLayout)2 FileDialog (org.eclipse.swt.widgets.FileDialog)2 Group (org.eclipse.swt.widgets.Group)2 Table (org.eclipse.swt.widgets.Table)2 URI (java.net.URI)1 URISyntaxException (java.net.URISyntaxException)1 ArrayList (java.util.ArrayList)1