/*
* Copyright (c) 2008-2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.installer.widget;
import java.util.Map;
import com.emc.storageos.installer.util.InstallerConstants;
import charva.awt.BorderLayout;
import charvax.swing.JLabel;
import charvax.swing.JPanel;
/**
* Class implements each page base layout based on the input view data.
*
*/
public class BasePanel extends JPanel {
private String id;
private String title;
private String instruction;
private JPanel east;
private JPanel west;
private JPanel center;
private BasePanel next;
private BasePanel previous;
private boolean isFirst = false;
private boolean isLast = false;
private Map<Object, Object> dataView;
public Map<Object, Object> getDataView() {
return dataView;
}
public BasePanel(String id, Map<Object, Object> view) {
this.id = id;
this.title = (String) view.get(InstallerConstants.PANEL_TITLE_KEY);
this.instruction = (String) view.get(InstallerConstants.PANEL_INST_KEY);
this.setLayout(new BorderLayout());
setupInstructionPanel();
dataView = view;
setupContentPanel(view);
}
/*
* Set up content panel using the view data.
*
* @param view - a map of view data with layout positions
*/
private void setupContentPanel(Map<Object, Object> view) {
if (view == null || view.isEmpty()) {
return;
}
JPanel contentPanel = new JPanel();
contentPanel.setLayout(new BorderLayout());
west = (JPanel) view.get(InstallerConstants.PANEL_POSITION_WEST);
if (west != null) {
contentPanel.add(west, BorderLayout.WEST);
}
east = (JPanel) view.get(InstallerConstants.PANEL_POSITION_EAST);
if (east != null) {
contentPanel.add(east, BorderLayout.EAST);
}
center = (JPanel) view.get(InstallerConstants.PANEL_POSITION_CENTER);
if (center != null) {
contentPanel.add(center, BorderLayout.CENTER);
}
add(contentPanel, BorderLayout.CENTER);
}
public String getId() {
return this.id;
}
public String getTitle() {
return this.title;
}
private void setupInstructionPanel() {
if (instruction == null || instruction.isEmpty()) {
return;
}
setLayout(new BorderLayout());
add(new JLabel(instruction), BorderLayout.SOUTH);
}
public BasePanel getNext() {
return next;
}
public BasePanel getPrevious() {
return previous;
}
public void setNext(BasePanel next) {
this.next = next;
}
public void setPrevious(BasePanel previous) {
this.previous = previous;
}
public boolean isFirstPage() {
return isFirst;
}
public void setFirstPage(boolean b) {
this.isFirst = b;
}
public boolean isLastPage() {
return isLast;
}
public void setLastPage(boolean b) {
this.isLast = b;
}
}