// Near Infinity - An Infinity Engine Browser and Editor // Copyright (C) 2001 - 2005 Jon Olav Hauglid // See LICENSE.txt for license information package org.infinity.resource.are; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Insets; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import org.infinity.datatype.Flag; import org.infinity.gui.ViewerUtil; import org.infinity.resource.StructEntry; public final class ViewerContainer extends JPanel { ViewerContainer(Container container) { JPanel fieldPanel = makeFieldPanel(container); JPanel itemPanel = ViewerUtil.makeListPanel("Items", container, Item.class, Item.ARE_ITEM_RESREF); JPanel mainPanel = new JPanel(new GridLayout(1, 2, 3, 3)); mainPanel.add(fieldPanel); mainPanel.add(itemPanel); GridBagLayout gbl = new GridBagLayout(); GridBagConstraints gbc = new GridBagConstraints(); setLayout(gbl); gbc.weightx = 0.0; gbc.weighty = 0.0; gbc.fill = GridBagConstraints.NONE; gbc.anchor = GridBagConstraints.CENTER; gbl.setConstraints(mainPanel, gbc); add(mainPanel); } private JPanel makeFieldPanel(Container container) { GridBagLayout gbl = new GridBagLayout(); GridBagConstraints gbc = new GridBagConstraints(); JPanel fieldPanel = new JPanel(gbl); gbc.insets = new Insets(3, 3, 3, 3); ViewerUtil.addLabelFieldPair(fieldPanel, container.getAttribute(Container.ARE_CONTAINER_NAME), gbl, gbc, true); ViewerUtil.addLabelFieldPair(fieldPanel, container.getAttribute(Container.ARE_CONTAINER_TYPE), gbl, gbc, true); StructEntry s1 = container.getAttribute(Container.ARE_CONTAINER_LOCATION_X); StructEntry s2 = container.getAttribute(Container.ARE_CONTAINER_LOCATION_Y); gbc.weightx = 0.0; gbc.fill = GridBagConstraints.NONE; gbc.gridwidth = 1; JLabel dlabel = new JLabel("Location"); gbl.setConstraints(dlabel, gbc); fieldPanel.add(dlabel); gbc.weightx = 1.0; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.gridwidth = GridBagConstraints.REMAINDER; JLabel tf1 = new JLabel('(' + s1.toString() + ',' + s2.toString() + ')'); tf1.setFont(tf1.getFont().deriveFont(Font.PLAIN)); gbl.setConstraints(tf1, gbc); fieldPanel.add(tf1); StructEntry s3 = container.getAttribute(Container.ARE_CONTAINER_LAUNCH_POINT_X); StructEntry s4 = container.getAttribute(Container.ARE_CONTAINER_LAUNCH_POINT_Y); gbc.weightx = 0.0; gbc.fill = GridBagConstraints.NONE; gbc.gridwidth = 1; JLabel dlabel2 = new JLabel("Launch point"); gbl.setConstraints(dlabel2, gbc); fieldPanel.add(dlabel2); gbc.weightx = 1.0; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.gridwidth = GridBagConstraints.REMAINDER; JLabel tf2 = new JLabel('(' + s3.toString() + ',' + s4.toString() + ')'); tf2.setFont(tf1.getFont()); gbl.setConstraints(tf2, gbc); fieldPanel.add(tf2); ViewerUtil.addLabelFieldPair(fieldPanel, container.getAttribute(Container.ARE_CONTAINER_LOCK_DIFFICULTY), gbl, gbc, true); ViewerUtil.addLabelFieldPair(fieldPanel, container.getAttribute(Container.ARE_CONTAINER_TRAP_DETECTION_DIFFICULTY), gbl, gbc, true); ViewerUtil.addLabelFieldPair(fieldPanel, container.getAttribute(Container.ARE_CONTAINER_TRAP_REMOVAL_DIFFICULTY), gbl, gbc, true); ViewerUtil.addLabelFieldPair(fieldPanel, container.getAttribute(Container.ARE_CONTAINER_KEY), gbl, gbc, true); JComponent check1 = ViewerUtil.makeCheckPanel((Flag)container.getAttribute(Container.ARE_CONTAINER_FLAGS), 1); JComponent check2 = ViewerUtil.makeCheckLabel(container.getAttribute(Container.ARE_CONTAINER_TRAPPED), "Yes (1)"); JComponent check3 = ViewerUtil.makeCheckLabel(container.getAttribute(Container.ARE_CONTAINER_TRAP_DETECTED), "Yes (1)"); gbc.gridwidth = GridBagConstraints.REMAINDER; gbc.weightx = 1.0; gbc.fill = GridBagConstraints.NONE; gbl.setConstraints(check1, gbc); fieldPanel.add(check1); gbl.setConstraints(check2, gbc); fieldPanel.add(check2); gbl.setConstraints(check3, gbc); fieldPanel.add(check3); return fieldPanel; } }