public FileTableTabs( MainFrame mainFrame, FolderPanel folderPanel, ConfFileTableTab[] initialTabs) { super( new FileTableTabsWithoutHeadersViewerFactory(folderPanel), new FileTableTabsWithHeadersViewerFactory(mainFrame, folderPanel)); this.folderPanel = folderPanel; defaultTabsFactory = new DefaultFileTableTabFactory(folderPanel); clonedTabsFactory = new ClonedFileTableTabFactory(folderPanel); // Register to location change events folderPanel.getLocationManager().addLocationListener(this); // Add the initial folders for (FileTableTab tab : initialTabs) addTab(clonedTabsFactory.createTab(tab)); }
public FolderChangeMonitor(FolderPanel folderPanel) { this.folderPanel = folderPanel; // Listen to folder changes to know when a folder is being / has been changed folderPanel.getLocationManager().addLocationListener(this); this.currentFolder = folderPanel.getCurrentFolder(); this.currentFolderDate = currentFolder.getDate(); // Folder contents is up-to-date let's wait before checking it for changes this.lastCheckTimestamp = System.currentTimeMillis(); this.waitBeforeCheckTime = waitAfterRefresh; folderPanel.getMainFrame().addWindowListener(this); instances.add(this); // create and start the monitor thread on first FolderChangeMonitor instance if (monitorThread == null && checkPeriod >= 0) { monitorThread = new Thread(this, getClass().getName()); monitorThread.setDaemon(true); monitorThread.start(); } }