| | |
| | | import javax.swing.SwingUtilities; |
| | | import javax.swing.event.ListSelectionEvent; |
| | | import javax.swing.event.ListSelectionListener; |
| | | import javax.swing.table.TableCellRenderer; |
| | | import javax.swing.table.TableColumn; |
| | | |
| | | import org.opends.guitools.controlpanel.datamodel.BackupDescriptor; |
| | |
| | | */ |
| | | private boolean backupDirectoryInitialized; |
| | | |
| | | private BackupTableCellRenderer renderer; |
| | | |
| | | private static final Logger LOG = |
| | | Logger.getLogger(RestorePanel.class.getName()); |
| | | |
| | |
| | | ListSelectionModel.SINGLE_SELECTION); |
| | | backupList.setShowGrid(false); |
| | | backupList.setIntercellSpacing(new Dimension(0, 0)); |
| | | TableCellRenderer renderer = new BackupTableCellRenderer(); |
| | | renderer = new BackupTableCellRenderer(); |
| | | renderer.setParentPath(new File(DUMMY_PARENT_PATH)); |
| | | for (int i=0; i<model.getColumnCount(); i++) |
| | | { |
| | | TableColumn col = backupList.getColumn(model.getColumnName(i)); |
| | |
| | | lRefreshingList.setVisible(true); |
| | | final int lastSelectedRow = backupList.getSelectedRow(); |
| | | |
| | | final String parentPath = parentDirectory.getText(); |
| | | BackgroundTask<Set<BackupInfo>> worker = |
| | | new BackgroundTask<Set<BackupInfo>>() |
| | | { |
| | |
| | | try |
| | | { |
| | | BackupDirectory backupDir = |
| | | BackupDirectory.readBackupDirectoryDescriptor( |
| | | parentDirectory.getText()); |
| | | BackupDirectory.readBackupDirectoryDescriptor(parentPath); |
| | | backups.addAll(backupDir.getBackups().values()); |
| | | } |
| | | catch (Throwable t) |
| | | { |
| | | firstThrowable = t; |
| | | } |
| | | // Check the subdirectories |
| | | File f = new File(parentDirectory.getText()); |
| | | File f = new File(parentPath); |
| | | |
| | | // Check the first level of directories (we might have done a backup |
| | | // of one backend and then a backup of several backends under the |
| | | // same directory). |
| | | if (f.isDirectory()) |
| | | { |
| | | File[] children = f.listFiles(); |
| | |
| | | } |
| | | catch (Throwable t2) |
| | | { |
| | | if (!children[i].getName().equals("tasks")) |
| | | if (!children[i].getName().equals("tasks") && |
| | | (firstThrowable != null)) |
| | | { |
| | | LOG.log(Level.WARNING, "Error searching backup: "+t2, t2); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | if (backups.size() == 0) |
| | | if ((backups.size() == 0) && (firstThrowable != null)) |
| | | { |
| | | throw firstThrowable; |
| | | } |
| | | } |
| | | return backups; |
| | | } |
| | | /** |
| | |
| | | { |
| | | BackupTableModel model = (BackupTableModel)backupList.getModel(); |
| | | model.clear(); |
| | | renderer.setParentPath(new File(parentPath)); |
| | | if (t == null) |
| | | { |
| | | if (returnValue.size() > 0) |
| | |
| | | worker.startBackgroundTask(); |
| | | } |
| | | |
| | | private final String DUMMY_PARENT_PATH = "/local/OpenDS-X.X.X/bak"; |
| | | /** |
| | | * Creates a list with backup descriptor. This is done simply to have a good |
| | | * initial size for the table. |
| | |
| | | { |
| | | ArrayList<BackupDescriptor> list = new ArrayList<BackupDescriptor>(); |
| | | list.add(new BackupDescriptor( |
| | | new File("/local/OpenDS-0.9.0/bak/200704201567Z"), |
| | | new File(DUMMY_PARENT_PATH+"/200704201567Z"), |
| | | new GregorianCalendar(2007, 5, 20, 8, 10).getTime(), |
| | | BackupDescriptor.Type.FULL, "id")); |
| | | list.add(new BackupDescriptor( |
| | | new File("/local/OpenDS-0.9.0/bak/200704201567Z"), |
| | | new File(DUMMY_PARENT_PATH+"/200704201567Z"), |
| | | new GregorianCalendar(2007, 5, 22, 8, 10).getTime(), |
| | | BackupDescriptor.Type.INCREMENTAL, "id")); |
| | | list.add(new BackupDescriptor( |
| | | new File("/local/OpenDS-0.9.0/bak/200704221567Z"), |
| | | new File(DUMMY_PARENT_PATH+"/200704221567Z"), |
| | | new GregorianCalendar(2007, 5, 25, 8, 10).getTime(), |
| | | BackupDescriptor.Type.INCREMENTAL, "id")); |
| | | return list; |