package org.basex.gui.view; import java.awt.BorderLayout; import java.util.Locale; import org.basex.gui.layout.BaseXBack; /** * This class contains a view reference and adds a {@link ViewMover} * on top of the view. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ final class ViewPanel extends BaseXBack implements ViewLayout { /** View reference. */ private final View view; /** * Constructor. * @param v view to be stored */ ViewPanel(final View v) { layout(new BorderLayout()); add(new ViewMover(v.gui), BorderLayout.NORTH); add(v, BorderLayout.CENTER); view = v; } @Override public void setVisibility(final boolean db) { setVisible(view.visible() && (db || !view.db())); } @Override public boolean delete(final ViewPanel panel) { return this == panel; } @Override public void createView(final BaseXBack panel) { if(isVisible()) panel.add(this); } /** * Makes the view invisible. */ public void delete() { view.gui.gprop.set("SHOW" + view.getName().toUpperCase(Locale.ENGLISH), false); view.gui.layoutViews(); } @Override public String layoutString() { return view.getName() + ' '; } @Override public String toString() { return view.getName(); } }