use of com.twinsoft.convertigo.engine.util.ProjectUrlParser in project convertigo by convertigo.
the class ImportWizardPage method createControl.
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
Composite page = new Composite(parent, SWT.NONE);
page.setLayout(new GridLayout(2, false));
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
gd.horizontalSpan = 2;
Composite fileSelectionArea = new Composite(page, SWT.NONE);
fileSelectionArea.setLayoutData(gd);
editor = new ProjectFileFieldEditor("fileSelect", "Select File: ", fileSelectionArea);
editor.getTextControl(fileSelectionArea).addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
IPath path = new Path(ImportWizardPage.this.editor.getStringValue());
filePath = path.toString();
updateStatus();
}
});
gd = new GridData(SWT.FILL, SWT.FILL, true, false);
gd.horizontalSpan = 2;
new Label(page, SWT.HORIZONTAL | SWT.SEPARATOR).setLayoutData(gd);
gd = new GridData(SWT.FILL, SWT.FILL, true, false);
gd.horizontalSpan = 2;
Label label = new Label(page, SWT.NONE);
label.setLayoutData(gd);
label.setText("Project can also be imported by a \"Project remote URL\":");
gd = new GridData(SWT.FILL, SWT.FILL, true, false);
gd.horizontalSpan = 2;
projectReferenceComposite = new ProjectReferenceComposite(page, SWT.NONE, new ProjectUrlParser(""), () -> updateStatus());
projectReferenceComposite.setLayoutData(gd);
updateStatus();
setControl(page);
}
use of com.twinsoft.convertigo.engine.util.ProjectUrlParser in project convertigo by convertigo.
the class ProjectSchemaReference method setProjectName.
public void setProjectName(String projectName) {
this.projectName = projectName;
parser = new ProjectUrlParser(projectName);
}
use of com.twinsoft.convertigo.engine.util.ProjectUrlParser in project convertigo by convertigo.
the class ProjectTreeObject method checkMissingProjects.
public void checkMissingProjects(final boolean doReload) {
synchronized (this) {
if (isCheckMissingProjects) {
return;
}
isCheckMissingProjects = true;
}
final Project project = getObject();
Job.create("Check missing project for " + project.getName(), (monitor) -> {
try {
final Set<String> missingProjects = project.getMissingProjects().keySet();
final Set<String> missingProjectReferences = project.getMissingProjectReferences().keySet();
if (!missingProjects.isEmpty() || !missingProjectReferences.isEmpty()) {
List<String> allProjects = Engine.theApp.databaseObjectsManager.getAllProjectNamesList(false);
for (Iterator<String> i = missingProjects.iterator(); i.hasNext(); ) {
String targetProjectName = i.next();
if (allProjects.contains(targetProjectName)) {
Display.getDefault().syncExec(() -> {
try {
ProjectExplorerView pev = getProjectExplorerView();
TreeObject obj = pev.getProjectRootObject(targetProjectName);
if (obj != null && obj instanceof UnloadedProjectTreeObject) {
pev.loadProject(((UnloadedProjectTreeObject) obj));
i.remove();
}
} catch (Exception e) {
Engine.logStudio.warn("Failed to open \"" + targetProjectName + "\"", e);
}
});
}
}
Map<String, ProjectUrlParser> refToImport = new HashMap<>();
for (Reference ref : project.getReferenceList()) {
if (ref instanceof ProjectSchemaReference) {
ProjectSchemaReference prjRef = (ProjectSchemaReference) ref;
if (missingProjects.contains(prjRef.getParser().getProjectName()) && prjRef.getParser().isValid()) {
refToImport.put(prjRef.getParser().getProjectName(), prjRef.getParser());
}
}
}
if (!refToImport.isEmpty()) {
Engine.execute(() -> {
boolean loaded = false;
for (ProjectUrlParser parser : refToImport.values()) {
try {
loaded |= Engine.theApp.referencedProjectManager.importProject(parser) != null;
} catch (Exception e) {
Engine.logStudio.warn("Failed to load '" + parser.getProjectName() + "'", e);
}
}
if (loaded) {
Engine.theApp.fireMigrationFinished(new EngineEvent(""));
}
});
return;
}
String message = "For \"" + project.getName() + "\" project :\n";
for (String targetProjectName : missingProjects) {
message += " > The project \"" + targetProjectName + "\" is missing\n";
}
for (String targetProjectName : missingProjectReferences) {
message += " > The reference to project \"" + targetProjectName + "\" is missing\n";
}
message += "\nPlease create missing reference(s) and import missing project(s), or correct your project.";
if (!missingProjectReferences.isEmpty()) {
final String msg = message;
final String warn = message;
Display.getDefault().syncExec(() -> {
CustomDialog customDialog = new CustomDialog(null, "Project references", msg + "\n\nDo you want to automatically add reference objects ?", 670, 250, new ButtonSpec("Always", true), new ButtonSpec("Never", false));
String autoCreate = ConvertigoPlugin.getProperty(ConvertigoPlugin.PREFERENCE_AUTO_CREATE_PROJECT_REFERENCE);
int response = autoCreate.isEmpty() ? customDialog.open() : (autoCreate.equalsIgnoreCase("true") ? 0 : 1);
ConvertigoPlugin.setProperty(ConvertigoPlugin.PREFERENCE_AUTO_CREATE_PROJECT_REFERENCE, response == 0 ? "true" : "false");
if (response == 0) {
for (String targetProjectName : missingProjectReferences) {
try {
ProjectSchemaReference reference = new ProjectSchemaReference();
String projectName = targetProjectName;
reference.setName(targetProjectName + "_reference");
projectName = ProjectUrlParser.getUrl(projectName);
reference.setProjectName(projectName);
reference.hasChanged = true;
project.add(reference);
} catch (Exception e) {
ConvertigoPlugin.logException(e, "failed to add a reference to '" + targetProjectName + "'");
}
}
try {
if (doReload || autoCreate.isEmpty()) {
ProjectExplorerView pev = getProjectExplorerView();
pev.reloadTreeObject(ProjectTreeObject.this);
}
} catch (Exception e) {
e.printStackTrace();
}
hasBeenModified(true);
} else {
Engine.logBeans.warn(warn);
}
});
} else if (!missingProjects.isEmpty()) {
ConvertigoPlugin.warningMessageBox(message);
}
}
} finally {
isCheckMissingProjects = false;
}
}).schedule();
}
use of com.twinsoft.convertigo.engine.util.ProjectUrlParser in project convertigo by convertigo.
the class ReferencedProjectManager method check.
private boolean check(List<String> names) {
boolean loaded = false;
Map<String, ProjectUrlParser> refs = new HashMap<>();
for (String name : names) {
try {
Project project = Engine.theApp.databaseObjectsManager.getOriginalProjectByName(name, true);
if (project != null) {
loaded |= check(project, refs);
}
} catch (Exception e) {
Engine.logEngine.error("Failed to load " + name, e);
}
}
return loaded;
}
use of com.twinsoft.convertigo.engine.util.ProjectUrlParser in project convertigo by convertigo.
the class ReferencedProjectManager method check.
private boolean check(Project project, Map<String, ProjectUrlParser> refs) {
project.getReferenceList().forEach(r -> {
if (r instanceof ProjectSchemaReference) {
ProjectSchemaReference ref = (ProjectSchemaReference) r;
String url = ref.getProjectName();
ProjectUrlParser parser = new ProjectUrlParser(url);
if (parser.isValid()) {
refs.put(parser.getProjectName(), parser);
}
}
});
return check(refs);
}
Aggregations