package com.link_intersystems.gitdirstat.ui.treeobjects;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.JComponent;
import com.link_intersystems.gitdirstat.ui.GitRepositoryModel;
public abstract class GitRepositoryComponent extends JComponent {
private static final long serialVersionUID = -3502081762632205262L;
private class CommitRangeTreeeChangeListener implements
PropertyChangeListener {
public void propertyChange(PropertyChangeEvent evt) {
updateCommitRangeTree();
}
}
private GitRepositoryModel gitRepositoryModel;
private CommitRangeTreeeChangeListener commitRangeTreeChangeListener = new CommitRangeTreeeChangeListener();
public void setModel(GitRepositoryModel gitRepositoryModel) {
if (this.gitRepositoryModel != null) {
this.gitRepositoryModel.removePropertyChangeListener(
GitRepositoryModel.PROP_COMMIT_RANGE_TREE,
commitRangeTreeChangeListener);
}
this.gitRepositoryModel = gitRepositoryModel;
if (this.gitRepositoryModel != null) {
this.gitRepositoryModel.addPropertyChangeListener(
GitRepositoryModel.PROP_COMMIT_RANGE_TREE,
commitRangeTreeChangeListener);
}
updateCommitRangeTree();
}
public GitRepositoryModel getModel() {
return gitRepositoryModel;
}
protected abstract void updateCommitRangeTree();
public void afterInvisible() {
}
public void beforeVisible() {
}
}