/*
* (c) Copyright 2010-2011 AgileBirds
*
* This file is part of OpenFlexo.
*
* OpenFlexo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenFlexo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openflexo.fps;
import java.io.File;
import java.io.FileFilter;
import java.util.Vector;
import java.util.logging.Logger;
import org.openflexo.foundation.Inspectors;
import org.openflexo.fps.dm.CVSRepositoryCreated;
import org.openflexo.fps.dm.CVSRepositoryDeleted;
import org.openflexo.localization.FlexoLocalization;
public class CVSRepositoryList extends FPSObject {
private static final Logger logger = Logger.getLogger(CVSRepositoryList.class.getPackage().getName());
private File _storedRepositoryDirectory;
private Vector<CVSRepository> _repositories;
public CVSRepositoryList() {
_repositories = new Vector<CVSRepository>();
}
public Vector<CVSRepository> getCVSRepositories() {
return _repositories;
}
public void setCVSRepositories(Vector<CVSRepository> repositories) {
_repositories = repositories;
setChanged();
}
public void addToCVSRepositories(CVSRepository repository) {
_repositories.add(repository);
repository.saveCVSRepositoryLocation();
repository.setCVSRepositoryList(this);
setChanged();
notifyObservers(new CVSRepositoryCreated(repository));
}
public void removeFromCVSRepositories(CVSRepository repository) {
repository.setCVSRepositoryList(null);
_repositories.remove(repository);
setChanged();
notifyObservers(new CVSRepositoryDeleted(repository));
}
@Override
public String getInspectorName() {
return Inspectors.FPS.CVS_REPOSITORY_LIST_INSPECTOR;
}
@Override
public String getHelpText() {
return FlexoLocalization.localizedForKey("cvs_repository_list_help_text");
}
@Override
public String getClassNameKey() {
return "cvs_repository_list";
}
public File getStoredRepositoryDirectory() {
return _storedRepositoryDirectory;
}
public void setStoredRepositoryDirectory(File storedRepositoryDirectory) {
_storedRepositoryDirectory = storedRepositoryDirectory;
}
public void loadStoredRepositoryLocation(File storedRepositoryDirectory/*, FlexoEditor editor*/) {
setStoredRepositoryDirectory(storedRepositoryDirectory);
if (storedRepositoryDirectory == null || !storedRepositoryDirectory.exists()) {
return;
}
File[] allLocationFiles = storedRepositoryDirectory.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".cvs");
}
});
for (File f : allLocationFiles) {
CVSRepository rep = new CVSRepository(f);
addToCVSRepositories(rep);
// SwingUtilities.invokeLater(new RetrieveModuleRunnable(rep,editor));
}
}
/*public static class RetrieveModuleRunnable implements Runnable
{
private CVSRepository _rep;
private FlexoEditor _editor;
public RetrieveModuleRunnable(CVSRepository rep, FlexoEditor editor)
{
_rep = rep;
_editor = editor;
}
public void run() {
logger.warning("This implementation is not correct: you should not use FlexoAction primitive from the model !");
// TODO: Please implement this better later
// Used editor will be null
CVSRefresh.actionType.makeNewAction(_rep,null,_editor).doAction();
}
}*/
@Override
public boolean isContainedIn(FPSObject obj) {
return obj == this;
}
}