use of net.heartsome.cat.ts.importproject.widgiet.ProjectResource in project translationstudio8 by heartsome.
the class ImportProjectWizardPage2 method createProjectImpl.
private void createProjectImpl(ProjectResource projRoot, IProject newProject) throws Exception {
try {
for (Object obj : selectContentProvider.getChildren(projRoot)) {
if (obj instanceof ProjectResource) {
ProjectResource proResource = (ProjectResource) obj;
// 如果没有选中,那么不进行导入操作
if (!selectElementTree.getChecked(proResource)) {
continue;
}
if (proResource.isFolder()) {
// 如果是文件夹,则创建
IFolder childFolder = newProject.getFolder(proResource.getLabel());
if (!childFolder.exists()) {
childFolder.create(true, true, null);
}
createCurProjectResource(proResource, childFolder);
} else {
// 如果是文件,则判断是否需要覆盖,若是,则直接覆盖
if (proResource.isNeedCover()) {
IFile iFile = newProject.getFile(proResource.getLabel());
InputStream inputStream = proResource.getInputStream();
if (inputStream != null) {
if (iFile.exists()) {
closeOpenedFile(iFile);
iFile.delete(true, null);
}
iFile.create(inputStream, true, null);
}
}
}
}
}
} catch (Exception e) {
//disposeImg();
LOGGER.error(Messages.getString("importProjectWizardPage.LOGG.importEroor"), e);
throw e;
}
}
use of net.heartsome.cat.ts.importproject.widgiet.ProjectResource in project translationstudio8 by heartsome.
the class ImportProjectWizardPage2 method checkRepeatTreeChildCover.
/**
* 重复树点击事件触发的方法,该方法主要是实现用户针对重复文件的覆盖选择操作
* @param event
*/
private void checkRepeatTreeChildCover(ProjectResource parentElemnt) {
Object[] childArray = repeateContentProvider.getChildren(parentElemnt);
if (childArray == null || childArray.length <= 0) {
return;
}
for (Object childObj : childArray) {
if (childObj instanceof ProjectResource) {
ProjectResource proResourceChild = (ProjectResource) childObj;
proResourceChild.setNeedCover(repeatElementTree.getChecked(proResourceChild));
checkRepeatTreeChildCover(proResourceChild);
}
}
}
use of net.heartsome.cat.ts.importproject.widgiet.ProjectResource in project translationstudio8 by heartsome.
the class ImportProjectWizardPage2 method getRepeateProResourceInput.
/**
* 获取右边树(重复项目资源)的输入内容,即获取重复的项目资源
* @return
*/
private ProjectResource[] getRepeateProResourceInput() {
List<ProjectResource> proResourceList = new ArrayList<ProjectResource>();
for (ProjectResource proResource : rootProjectArray) {
String projectName = proResource.getProjectName();
if (checkedRepeatElementMap.containsKey(projectName)) {
proResourceList.add(proResource);
}
}
ProjectResource[] root = (ProjectResource[]) proResourceList.toArray(new ProjectResource[proResourceList.size()]);
repeatElementTree.setRoot(root);
return root;
}
use of net.heartsome.cat.ts.importproject.widgiet.ProjectResource in project translationstudio8 by heartsome.
the class ImportProjectWizardPage2 method initTreeListener.
/**
* 初始化两颗树的事件
*/
private void initTreeListener() {
selectElementTree.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(final CheckStateChangedEvent event) {
BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
public void run() {
selectElementTreeCheckFunction(event);
setNotCoverForNotcheckOfSelectTree();
setPageCompleteState(OTHER_TYPE);
}
});
}
});
repeatElementTree.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(final CheckStateChangedEvent event) {
BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
public void run() {
Object element = event.getElement();
if (element instanceof ProjectResource) {
ProjectResource proResourceElement = (ProjectResource) element;
if (repeatElementTree.getChecked(proResourceElement)) {
proResourceElement.setNeedCover(true);
} else {
proResourceElement.setNeedCover(false);
}
// 处理所有的子文件或文件夹,以保存证他们都处于要覆盖状态
checkRepeatTreeChildCover(proResourceElement);
// 处理当前节点的所有父节点
ProjectResource parentProRes = proResourceElement.getParent();
while (parentProRes != null) {
parentProRes.setNeedCover(repeatElementTree.getChecked(parentProRes));
parentProRes = parentProRes.getParent();
}
repeatElementTree.refresh(true);
}
setPageCompleteState(OTHER_TYPE);
}
});
}
});
}
Aggregations