/*
* Copyright (c) 1998-2017 by Richard A. Wilkes. All rights reserved.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, version 2.0. If a copy of the MPL was not distributed with
* this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, version 2.0.
*/
package com.trollworks.gcs.library;
import com.trollworks.gcs.preferences.SheetPreferences;
import com.trollworks.gcs.widgets.outline.ListOutline;
import com.trollworks.toolkit.ui.border.LineBorder;
import com.trollworks.toolkit.ui.scale.Scale;
import com.trollworks.toolkit.ui.scale.ScaleRoot;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Rectangle;
import javax.swing.JPanel;
import javax.swing.Scrollable;
public class LibraryContent extends JPanel implements ScaleRoot, Scrollable {
private ListOutline mOutline;
private Scale mScale;
public LibraryContent(ListOutline outline) {
mOutline = outline;
mOutline.setBorder(new LineBorder(mOutline.getDividerColor(), 0, 0, 0, 1));
setLayout(new BorderLayout());
add(mOutline);
mScale = SheetPreferences.getInitialUIScale().getScale();
}
@Override
public Scale getScale() {
return mScale;
}
@Override
public void setScale(Scale scale) {
if (mScale.getScale() != scale.getScale()) {
mScale = scale;
mOutline.sizeColumnsToFit();
revalidate();
repaint();
}
}
@Override
public Dimension getPreferredScrollableViewportSize() {
return mOutline.getPreferredScrollableViewportSize();
}
@Override
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) {
return mOutline.getScrollableUnitIncrement(visibleRect, orientation, direction);
}
@Override
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) {
return mOutline.getScrollableBlockIncrement(visibleRect, orientation, direction);
}
@Override
public boolean getScrollableTracksViewportWidth() {
return mOutline.getScrollableTracksViewportWidth();
}
@Override
public boolean getScrollableTracksViewportHeight() {
return mOutline.getScrollableTracksViewportHeight();
}
}