use of org.gephi.desktop.mrufiles.api.MostRecentFiles in project gephi by gephi.
the class RecentFiles method getMenuPresenter.
@Override
public JMenuItem getMenuPresenter() {
JMenu menu = new JMenu(NbBundle.getMessage(RecentFiles.class, "CTL_OpenRecentFiles"));
MostRecentFiles mru = Lookup.getDefault().lookup(MostRecentFiles.class);
for (String filePath : mru.getMRUFileList()) {
final File file = new File(filePath);
if (file.exists()) {
final String fileName = file.getName();
JMenuItem menuItem = new JMenuItem(new AbstractAction(fileName) {
@Override
public void actionPerformed(ActionEvent e) {
FileObject fileObject = FileUtil.toFileObject(file);
if (fileObject.hasExt(GEPHI_EXTENSION)) {
ProjectControllerUI pc = Lookup.getDefault().lookup(ProjectControllerUI.class);
try {
pc.openProject(file);
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
} else {
ImportControllerUI importController = Lookup.getDefault().lookup(ImportControllerUI.class);
if (importController.getImportController().isFileSupported(file)) {
importController.importFile(fileObject);
}
}
}
});
menu.add(menuItem);
}
}
return menu;
}
use of org.gephi.desktop.mrufiles.api.MostRecentFiles in project gephi by gephi.
the class ProjectControllerUIImpl method loadProject.
private void loadProject(File file) {
lockProjectActions();
final Runnable loadTask = controller.openProject(file);
final String fileName = file.getName();
Runnable loadRunnable = new Runnable() {
@Override
public void run() {
loadTask.run();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = (JFrame) WindowManager.getDefault().getMainWindow();
String title = frame.getTitle() + " - " + fileName;
frame.setTitle(title);
}
});
// Status line
StatusDisplayer.getDefault().setStatusText(NbBundle.getMessage(ProjectControllerUIImpl.class, "ProjectControllerUI.status.opened", fileName));
}
};
if (loadTask instanceof LongTask) {
longTaskExecutor.execute((LongTask) loadTask, loadRunnable);
} else {
longTaskExecutor.execute(null, loadRunnable);
}
// Save MRU
MostRecentFiles mostRecentFiles = Lookup.getDefault().lookup(MostRecentFiles.class);
mostRecentFiles.addFile(file.getAbsolutePath());
}
use of org.gephi.desktop.mrufiles.api.MostRecentFiles in project gephi by gephi.
the class DesktopImportControllerUI method importFiles.
@Override
public void importFiles(FileObject[] fileObjects) {
MostRecentFiles mostRecentFiles = Lookup.getDefault().lookup(MostRecentFiles.class);
fileObjects = Arrays.copyOf(fileObjects, fileObjects.length);
// Extract files if they are zipped:
for (int i = 0; i < fileObjects.length; i++) {
fileObjects[i] = ImportUtils.getArchivedFile(fileObjects[i]);
if (FileUtil.isArchiveArtifact(fileObjects[i])) {
try {
// Copy the archived file so we never have problems converting it to a simple File during import:
File tempDir = TempDirUtils.createTempDirectory();
fileObjects[i] = FileUtil.copyFile(fileObjects[i], FileUtil.toFileObject(tempDir), fileObjects[i].getName());
} catch (IOException ex) {
Exceptions.printStackTrace(ex);
}
}
}
Reader[] readers = new Reader[fileObjects.length];
FileImporter[] importers = new FileImporter[fileObjects.length];
try {
for (int i = 0; i < fileObjects.length; i++) {
FileObject fileObject = fileObjects[i];
importers[i] = controller.getFileImporter(fileObject);
if (importers[i] == null) {
NotifyDescriptor.Message msg = new NotifyDescriptor.Message(NbBundle.getMessage(getClass(), "DesktopImportControllerUI.error_no_matching_file_importer"), NotifyDescriptor.WARNING_MESSAGE);
DialogDisplayer.getDefault().notify(msg);
return;
}
readers[i] = ImportUtils.getTextReader(fileObject);
// MRU
mostRecentFiles.addFile(fileObject.getPath());
}
importFiles(readers, importers, fileObjects);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
use of org.gephi.desktop.mrufiles.api.MostRecentFiles in project gephi by gephi.
the class WelcomeTopComponent method loadMRU.
private void loadMRU() {
net.miginfocom.swing.MigLayout migLayout1 = new net.miginfocom.swing.MigLayout();
migLayout1.setColumnConstraints("[pref]");
recentPanel.setLayout(migLayout1);
MostRecentFiles mru = Lookup.getDefault().lookup(MostRecentFiles.class);
for (String filePath : mru.getMRUFileList()) {
JXHyperlink fileLink = new JXHyperlink(openAction);
File file = new File(filePath);
if (file.exists()) {
fileLink.setText(file.getName());
fileLink.putClientProperty(LINK_PATH, file);
recentPanel.add(fileLink, "wrap");
}
}
}
use of org.gephi.desktop.mrufiles.api.MostRecentFiles in project gephi by gephi.
the class DesktopImportControllerUI method importFile.
@Override
public void importFile(FileObject fileObject) {
try {
final FileImporter importer = controller.getFileImporter(FileUtil.toFile(fileObject));
if (importer == null) {
NotifyDescriptor.Message msg = new NotifyDescriptor.Message(NbBundle.getMessage(getClass(), "DesktopImportControllerUI.error_no_matching_file_importer"), NotifyDescriptor.WARNING_MESSAGE);
DialogDisplayer.getDefault().notify(msg);
return;
}
//MRU
MostRecentFiles mostRecentFiles = Lookup.getDefault().lookup(MostRecentFiles.class);
mostRecentFiles.addFile(fileObject.getPath());
ImporterUI ui = controller.getUI(importer);
if (ui != null) {
String title = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.file.ui.dialog.title", ui.getDisplayName());
JPanel panel = ui.getPanel();
FileImporter[] fi = (FileImporter[]) Array.newInstance(importer.getClass(), 1);
fi[0] = importer;
ui.setup(fi);
final DialogDescriptor dd = new DialogDescriptor(panel, title);
if (panel instanceof ValidationPanel) {
ValidationPanel vp = (ValidationPanel) panel;
vp.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
dd.setValid(!((ValidationPanel) e.getSource()).isProblem());
}
});
}
Object result = DialogDisplayer.getDefault().notify(dd);
if (!result.equals(NotifyDescriptor.OK_OPTION)) {
ui.unsetup(false);
return;
}
ui.unsetup(true);
}
LongTask task = null;
if (importer instanceof LongTask) {
task = (LongTask) importer;
}
//Execute task
fileObject = getArchivedFile(fileObject);
final String containerSource = fileObject.getNameExt();
final InputStream stream = fileObject.getInputStream();
String taskName = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.taskName", containerSource);
executor.execute(task, new Runnable() {
@Override
public void run() {
try {
Container container = controller.importFile(stream, importer);
if (container != null) {
container.setSource(containerSource);
finishImport(container);
}
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
}, taskName, errorHandler);
} catch (Exception ex) {
Logger.getLogger("").log(Level.WARNING, "", ex);
}
}
Aggregations