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);
}
}
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;
}
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);
}
});
}
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;
}
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();
}
Aggregations