Search in sources :

Example 21 with Folder

use of org.talend.core.model.repository.Folder in project tdq-studio-se by Talend.

the class WorkspaceResourceHelper method computeFileFromPlugin.

/**
 * DOC bZhou Comment method "computeFileFromPlugin".
 *
 * @param plugin
 * @param srcPath
 * @param recurse
 * @param desFolder
 * @param suffix
 * @param type
 * @param resultMap
 * @throws Exception
 */
public static void computeFileFromPlugin(Plugin plugin, String srcPath, boolean recurse, Folder desFolder, Set<String> suffix, ERepositoryObjectType type, Map<File, IPath> resultMap) throws Exception {
    if (plugin == null || srcPath == null) {
        return;
    }
    IProject project = ResourceManager.getRootProject();
    Enumeration<String> paths = plugin.getBundle().getEntryPaths(srcPath);
    while (paths != null && paths.hasMoreElements()) {
        String nextElement = paths.nextElement();
        // $NON-NLS-1$
        String currentPath = "/" + nextElement;
        URL resourceURL = plugin.getBundle().getEntry(currentPath);
        URL fileURL = null;
        File file = null;
        fileURL = FileLocator.toFileURL(resourceURL);
        file = new File(fileURL.getFile());
        String fileName = file.getName();
        if (file.isDirectory() && recurse) {
            if (fileName.startsWith(".")) {
                // $NON-NLS-1$
                continue;
            }
            Folder folder = null;
            if (!project.getFolder(fileName).exists()) {
                folder = ProxyRepositoryFactory.getInstance().createFolder(type, Path.EMPTY, fileName);
            } else {
                IPath fullPath = new Path(file.getPath());
                int count = fullPath.segmentCount();
                FolderItem folderItem = ProxyRepositoryFactory.getInstance().getFolderItem(ProjectManager.getInstance().getCurrentProject(), type, fullPath.removeFirstSegments(count - 1));
                if (folderItem == null) {
                    folder = ProxyRepositoryFactory.getInstance().createFolder(type, Path.EMPTY, fileName);
                } else {
                    folder = new Folder(folderItem.getProperty(), type);
                }
            }
            computeFileFromPlugin(plugin, currentPath, recurse, folder, suffix, type, resultMap);
            continue;
        }
        // MOD msjian TDQ-4608 2012-3-6: deal with the *.jasper file
        if (suffix != null && !suffix.contains(FileUtils.getExtension(file))) {
            continue;
        }
        String folderName = null;
        folderName = file.getParentFile().getName();
        // TDQ-4608 ~
        IFolder folder = project.getFolder(folderName);
        int segmentCount = folder.getFullPath().segmentCount();
        IPath parentPath = folder.getFullPath().removeFirstSegments(segmentCount - 1);
        resultMap.put(file, parentPath);
    }
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) FolderItem(org.talend.core.model.properties.FolderItem) IPath(org.eclipse.core.runtime.IPath) IFolder(org.eclipse.core.resources.IFolder) Folder(org.talend.core.model.repository.Folder) IFile(org.eclipse.core.resources.IFile) File(java.io.File) IProject(org.eclipse.core.resources.IProject) URL(java.net.URL) IFolder(org.eclipse.core.resources.IFolder)

Example 22 with Folder

use of org.talend.core.model.repository.Folder in project tdi-studio-se by Talend.

the class ExportItemWizardPage method performFinish.

public boolean performFinish() {
    if (!checkExportFile()) {
        return false;
    }
    ProjectManager pManager = ProjectManager.getInstance();
    Project project = pManager.getCurrentProject().getEmfProject();
    //$NON-NLS-1$
    String projectPath = lastPath + "\\" + project.getTechnicalLabel();
    if ((itemFromDirectoryRadio.getSelection() && new File(projectPath).exists()) || (itemFromArchiveRadio.getSelection() && new File(archivePathField.getText()).exists())) {
        File oldFile = new File(projectPath).exists() ? new File(projectPath) : new File(archivePathField.getText());
        if (MessageDialogWithToggle.openConfirm(null, Messages.getString("ExportItemWizardPage.waring"), Messages.getString("ExportItemWizardPage.fileAlreadyExist"))) {
            //$NON-NLS-1$ //$NON-NLS-2$
            deleteFile(oldFile);
        } else {
            return false;
        }
    }
    Collection<Item> selectedItems = getSelectedItems();
    if (exportDependencies.getSelection() && !implicitDependences.isEmpty()) {
        for (IRepositoryViewObject object : implicitDependences) {
            selectedItems.add(object.getProperty().getItem());
        }
    }
    List<String> folders = new ArrayList<String>();
    for (Object obj : filteredCheckboxTree.getViewer().getCheckedElements()) {
        if (obj instanceof RepositoryNode) {
            RepositoryNode repositoryNode = (RepositoryNode) obj;
            if (repositoryNode.getType() == ENodeType.SIMPLE_FOLDER && repositoryNode.getObject() instanceof Folder) {
                Folder folder = (Folder) repositoryNode.getObject();
                ERepositoryObjectType contentType = repositoryNode.getContentType();
                IProjectRepositoryNode root = repositoryNode.getRoot();
                if (root != null && root.getProject() != null) {
                    IPath path = new Path(root.getProject().getTechnicalLabel());
                    path = path.append(contentType.getFolder());
                    String folderPath = folder.getPath();
                    if (folderPath != null && !"".equals(folderPath)) {
                        path = path.append(folderPath);
                    }
                    path = path.append(folder.getLabel());
                    folders.add(path.toPortableString() + "/");
                }
            }
        }
    }
    try {
        ExportItemUtil exportItemUtil = new ExportItemUtil();
        if (itemFromArchiveRadio.getSelection()) {
            if (lastPath != null && !lastPath.endsWith(FileConstants.TAR_FILE_SUFFIX) && !lastPath.endsWith(FileConstants.TAR_GZ_FILE_SUFFIX) && !lastPath.endsWith(FileConstants.ZIP_FILE_SUFFIX)) {
                // set zip as default
                lastPath = lastPath + FileConstants.ZIP_FILE_SUFFIX;
            }
        }
        // MOD sgandon 31/03/2010 bug 12229: moved getAllVersion into ExportItemUtil.exportitems() method.
        exportItemUtil.exportItems(new File(lastPath), selectedItems, folders, true, new NullProgressMonitor());
    } catch (Exception e) {
        MessageBoxExceptionHandler.process(e);
    }
    return true;
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) IPath(org.eclipse.core.runtime.IPath) ArrayList(java.util.ArrayList) ProjectRepositoryNode(org.talend.core.repository.model.ProjectRepositoryNode) RepositoryNode(org.talend.repository.model.RepositoryNode) IProjectRepositoryNode(org.talend.repository.model.nodes.IProjectRepositoryNode) IRepositoryNode(org.talend.repository.model.IRepositoryNode) Folder(org.talend.core.model.repository.Folder) InvocationTargetException(java.lang.reflect.InvocationTargetException) ProjectManager(org.talend.repository.ProjectManager) Project(org.talend.core.model.properties.Project) Item(org.talend.core.model.properties.Item) TreeItem(org.eclipse.swt.widgets.TreeItem) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) MetadataColumnRepositoryObject(org.talend.core.repository.model.repositoryObject.MetadataColumnRepositoryObject) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) RepositoryObject(org.talend.core.model.repository.RepositoryObject) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType) ExportItemUtil(org.talend.repository.local.ExportItemUtil) File(java.io.File) IProjectRepositoryNode(org.talend.repository.model.nodes.IProjectRepositoryNode)

Example 23 with Folder

use of org.talend.core.model.repository.Folder in project tdi-studio-se by Talend.

the class UseDynamicJobSelectionDialog method createTreeViewer.

private void createTreeViewer(Composite itemComposite) {
    filteredCheckboxTree = new FilteredCheckboxTree(itemComposite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI) {

        @Override
        protected CheckboxTreeViewer doCreateTreeViewer(Composite parent, int style) {
            return (CheckboxTreeViewer) RepoCommonViewerProvider.CHECKBOX.createViewer(parent);
        }

        @Override
        protected void refreshCompleted() {
            restoreCheckedElements();
        }
    };
    CheckboxTreeViewer viewer = filteredCheckboxTree.getViewer();
    viewer.setComparer(new IElementComparer() {

        private String getElementUniqueString(Object element) {
            if (element instanceof RepositoryNode && getSupportType() != null && getSupportType().equals(((RepositoryNode) element).getContentType())) {
                final RepositoryNode node = (RepositoryNode) element;
                StringBuffer sb = new StringBuffer();
                boolean validElem = false;
                ENodeType type = node.getType();
                if (ENodeType.REPOSITORY_ELEMENT.equals(type)) {
                    sb.append(node.getId());
                    validElem = true;
                } else if (ENodeType.SIMPLE_FOLDER.equals(type)) {
                    final IRepositoryViewObject object = node.getObject();
                    // path
                    if (object instanceof Folder) {
                        sb.append(((Folder) object).getPath());
                        sb.append('/');
                    }
                    sb.append(node.getLabel());
                    validElem = true;
                }
                if (validElem) {
                    sb.append('|');
                    // add project
                    if (node.getRoot() != null && node.getRoot().getProject() != null) {
                        sb.append(node.getRoot().getProject().getTechnicalLabel());
                    }
                    sb.append('|');
                    sb.append(node.getContentType().getType());
                    sb.append('|');
                    sb.append(type);
                    return sb.toString();
                }
            }
            return null;
        }

        @Override
        public int hashCode(Object element) {
            final String elementUniqueString = getElementUniqueString(element);
            if (elementUniqueString != null) {
                return elementUniqueString.hashCode();
            }
            return element.hashCode();
        }

        @Override
        public boolean equals(Object a, Object b) {
            String aStr = getElementUniqueString(a);
            String bStr = getElementUniqueString(b);
            return aStr != null && bStr != null ? aStr.equals(bStr) : a.equals(b);
        }
    });
    viewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            RepositoryNode node = (RepositoryNode) element;
            return filterRepositoryNode(node);
        }
    });
}
Also used : FilteredCheckboxTree(org.talend.core.ui.advanced.composite.FilteredCheckboxTree) Composite(org.eclipse.swt.widgets.Composite) ViewerFilter(org.eclipse.jface.viewers.ViewerFilter) IElementComparer(org.eclipse.jface.viewers.IElementComparer) Viewer(org.eclipse.jface.viewers.Viewer) CheckboxTreeViewer(org.eclipse.jface.viewers.CheckboxTreeViewer) ProjectRepositoryNode(org.talend.core.repository.model.ProjectRepositoryNode) RepositoryNode(org.talend.repository.model.RepositoryNode) IRepositoryNode(org.talend.repository.model.IRepositoryNode) Folder(org.talend.core.model.repository.Folder) CheckboxTreeViewer(org.eclipse.jface.viewers.CheckboxTreeViewer) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) ENodeType(org.talend.repository.model.IRepositoryNode.ENodeType)

Example 24 with Folder

use of org.talend.core.model.repository.Folder in project tdi-studio-se by Talend.

the class RepositoryXmlSelectionDialog method isSelectionValid.

@Override
protected boolean isSelectionValid(SelectionChangedEvent event) {
    boolean highlightOKButton = true;
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    if (selection == null || selection.size() != 1) {
        highlightOKButton = false;
    } else {
        RepositoryNode node = (RepositoryNode) selection.getFirstElement();
        if (node.getObject() == null || node.getObject().getProperty() == null) {
            return false;
        }
        if (node.getObject() instanceof Folder) {
            return false;
        }
        Item item = node.getObject().getProperty().getItem();
        if (item instanceof XmlFileConnectionItem) {
            ERepositoryObjectType t = (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);
            if (node.getType() != ENodeType.REPOSITORY_ELEMENT) {
                highlightOKButton = false;
            }
        } else if (item instanceof MDMConnectionItem) {
            if (node.getObject() instanceof MetadataTable) {
                highlightOKButton = true;
                updateErrorMessage(null);
            } else {
                highlightOKButton = false;
                updateErrorMessage(Messages.getString("RepositoryXmlSelectionDialog.UpdateErrorMessage"));
            }
        }
    }
    return highlightOKButton;
}
Also used : Item(org.talend.core.model.properties.Item) XmlFileConnectionItem(org.talend.core.model.properties.XmlFileConnectionItem) MDMConnectionItem(org.talend.core.model.properties.MDMConnectionItem) MetadataTable(org.talend.core.model.metadata.MetadataTable) MDMConnectionItem(org.talend.core.model.properties.MDMConnectionItem) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) XmlFileConnectionItem(org.talend.core.model.properties.XmlFileConnectionItem) RepositoryNode(org.talend.repository.model.RepositoryNode) Folder(org.talend.core.model.repository.Folder) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType)

Example 25 with Folder

use of org.talend.core.model.repository.Folder in project tdi-studio-se by Talend.

the class StandAloneTalendJavaEditor method getTitleText.

private String getTitleText(IRepositoryViewObject object) {
    StringBuffer string = new StringBuffer();
    string.append(object.getLabel());
    IBrandingService brandingService = (IBrandingService) GlobalServiceRegister.getDefault().getService(IBrandingService.class);
    boolean allowVerchange = brandingService.getBrandingConfiguration().isAllowChengeVersion();
    if (!(object instanceof Folder) && allowVerchange) {
        //$NON-NLS-1$
        string.append(" " + object.getVersion());
    }
    // nodes in the recycle bin
    if (object.isDeleted()) {
        String oldPath = object.getPath();
        //$NON-NLS-1$ //$NON-NLS-2$
        string.append(" (" + oldPath + ")");
    }
    return string.toString();
}
Also used : IBrandingService(org.talend.core.ui.branding.IBrandingService) Folder(org.talend.core.model.repository.Folder)

Aggregations

Folder (org.talend.core.model.repository.Folder)45 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)34 IFolder (org.eclipse.core.resources.IFolder)16 FolderItem (org.talend.core.model.properties.FolderItem)10 ArrayList (java.util.ArrayList)9 ERepositoryObjectType (org.talend.core.model.repository.ERepositoryObjectType)9 RepositoryNode (org.talend.repository.model.RepositoryNode)9 IPath (org.eclipse.core.runtime.IPath)7 IRepositoryNode (org.talend.repository.model.IRepositoryNode)7 PersistenceException (org.talend.commons.exception.PersistenceException)5 File (java.io.File)4 IContainer (org.eclipse.core.resources.IContainer)4 IProject (org.eclipse.core.resources.IProject)4 Path (org.eclipse.core.runtime.Path)4 Item (org.talend.core.model.properties.Item)4 IFile (org.eclipse.core.resources.IFile)3 Project (org.talend.core.model.general.Project)3 ItemState (org.talend.core.model.properties.ItemState)3 Property (org.talend.core.model.properties.Property)3 IOException (java.io.IOException)2