Make ItemManager derive from JPanel instead

This commit is contained in:
drdev
2013-08-17 15:10:26 +00:00
parent ecd8e8838f
commit 7dc9afddb3
3 changed files with 14 additions and 37 deletions

View File

@@ -36,7 +36,6 @@ import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JViewport;
import javax.swing.ScrollPaneConstants;
import javax.swing.Timer;
@@ -97,28 +96,6 @@ public class FScrollPanel extends JScrollPane {
useArrowButtons = useArrowButtons0;
getViewport().setOpaque(false);
innerPanel.setOpaque(false);
initialize();
}
/**
* An extension of JScrollPane that can be used as a panel and supports using arrow buttons to scroll instead of scrollbars
*
* @param viewport   Viewport for panel
* @param useArrowButtons0   True to use arrow buttons to scroll, false to use scrollbars
* @param vertical0   Vertical scroll bar policy
* @param horizontal0   Horizontal scroll bar policy
*/
protected FScrollPanel(final JViewport viewport, boolean useArrowButtons0, final int vertical0, final int horizontal0) {
super(vertical0, horizontal0);
innerPanel = null;
useArrowButtons = useArrowButtons0;
this.setViewport(viewport);
initialize();
}
private void initialize()
{
setOpaque(false);
setBorder(null);
getHorizontalScrollBar().setUnitIncrement(16);

View File

@@ -54,7 +54,7 @@ import forge.util.Aggregates;
* @param <T>
* the generic type
*/
public final class ItemManager<T extends InventoryItem> extends JViewport {
public final class ItemManager<T extends InventoryItem> extends JPanel {
private static final long serialVersionUID = 3164349984277267922L;
private ItemPool<T> pool;
private final ItemManagerModel<T> model;
@@ -66,7 +66,6 @@ public final class ItemManager<T extends InventoryItem> extends JViewport {
private final ItemTable<T> table;
private final JScrollPane tableScroller;
private final JPanel pnlContents = new JPanel();
private final JTextField txtSearch = new FTextField.Builder().ghostText("Search").build();
/**
@@ -93,12 +92,10 @@ public final class ItemManager<T extends InventoryItem> extends JViewport {
//build display
this.setOpaque(false);
this.pnlContents.setOpaque(false);
this.pnlContents.setLayout(null);
this.pnlContents.add(this.txtSearch);
this.pnlContents.add(this.tableScroller);
this.setView(this.pnlContents);
this.pnlContents.addComponentListener(new ComponentAdapter() {
this.setLayout(null);
this.add(this.txtSearch);
this.add(this.tableScroller);
this.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
ItemManager.this.updateLayout();
@@ -110,8 +107,8 @@ public final class ItemManager<T extends InventoryItem> extends JViewport {
{
int x = 0;
int y = 0;
int width = this.pnlContents.getWidth();
int height = this.pnlContents.getHeight();
int width = this.getWidth();
int height = this.getHeight();
//position toolbar components
int toolbarHeight = FTextField.HEIGHT + 3;

View File

@@ -19,7 +19,6 @@ package forge.gui.toolbox.itemmanager;
import javax.swing.JScrollPane;
import forge.gui.toolbox.FScrollPanel;
import forge.item.InventoryItem;
@@ -28,13 +27,17 @@ import forge.item.InventoryItem;
*
*/
@SuppressWarnings("serial")
public final class ItemManagerContainer extends FScrollPanel {
public final class ItemManagerContainer extends JScrollPane {
public ItemManagerContainer() {
this(null);
}
public ItemManagerContainer(ItemManager<? extends InventoryItem> itemManager) {
super(itemManager, true, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
super(itemManager, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
setBorder(null);
setOpaque(false);
getViewport().setOpaque(false);
}
/**
@@ -44,6 +47,6 @@ public final class ItemManagerContainer extends FScrollPanel {
* @return ItemPoolView
*/
public void setItemManager(ItemManager<? extends InventoryItem> itemManager) {
this.setViewport(itemManager);
this.getViewport().setView(itemManager);
}
}