VAqua.src.org.violetlib.aqua.fc.ColumnView Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vaqua Show documentation
Show all versions of vaqua Show documentation
An improved native Swing look and feel for macOS
The newest version!
/*
* Copyright (c) 2014-2015 Alan Snyder.
* All rights reserved.
*
* You may not use, copy or modify this file, except in compliance with the license agreement. For details see
* accompanying license terms.
*/
package org.violetlib.aqua.fc;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.tree.TreePath;
import java.util.List;
/**
* The file chooser column view.
*/
public abstract class ColumnView extends JPanel implements FileChooserView {
private ChangeListener changeListener;
private ChangeEvent changeEvent = new ChangeEvent(this);
private SelectListener selectListener;
public static ColumnView create(JFileChooser fc) {
return new ColumnViewImpl(fc);
}
@Override
public final void addSelectionChangeListener(ChangeListener l) {
changeListener = l;
}
@Override
public final void addSelectListener(SelectListener l) {
selectListener = l;
}
protected final void selectionChanged() {
if (changeListener != null) {
changeListener.stateChanged(changeEvent);
}
}
protected final void select(TreePath path) {
if (selectListener != null) {
selectListener.select(path);
}
}
@Override
public void ensureSelectionIsVisible() {
List paths = getSelection();
if (!paths.isEmpty()) {
ensurePathIsVisible(paths.get(0));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy