/*
 * Copyright 2003-2011 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package jetbrains.mps.ide.devkit.cellExplorer;

import jetbrains.mps.ide.icons.IconManager;
import jetbrains.mps.openapi.editor.cells.EditorCell;

import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;

/**
 * Created by IntelliJ IDEA.
 * User: Cyril.Konopko
 * Date: 19.08.2005
 * Time: 17:32:28
 */
public class CellPropertiesWindow extends JFrame {

  public CellPropertiesWindow(EditorCell editorCell, Frame mainFrame) {
    CellProperties cellProperties = new CellProperties(editorCell);

    String cellText = cellProperties.getCellText();

    String cellKind = cellProperties.getCellKind();
    String hashCode = " @ "+editorCell.hashCode();
    String cellWidth = cellProperties.getCellWidth();
    String cellHeight = cellProperties.getCellHeight();
    String cellEffectiveWidth = cellProperties.getCellEffectiveWidth();
    String isRootCell = cellProperties.getRootCell();
    String cellID = cellProperties.getCellID();
    String cellNumber = cellProperties.getCellNumber();
    String cellRole = cellProperties.getCellRole();
    String cellSNode = cellProperties.getCellSNode();
    Icon icon = IconManager.getIconFor(cellProperties.getSNode());

    setLayout(new BorderLayout());

    JPanel outerPanel = new JPanel(new GridLayout(1,1,0,10));

    JPanel panel = new JPanel(new GridLayout(10, 2, 10, 20));
    panel.setBorder(new EmptyBorder(10,5,5,5));

    Font f = panel.getFont();
    Font bold = new Font(f.getName(), Font.BOLD, f.getSize());
    Font italic = new Font(f.getName(), Font.ITALIC, f.getSize());
    panel.add(new JLabel("Cell:")).setFont(bold); panel.add(new JLabel(cellKind + hashCode)).setFont(bold);
    panel.add(new JLabel("ID:")).setFont(bold); panel.add(new JLabel(cellID));
    panel.add(new JLabel("Role:")).setFont(bold);panel.add(new JLabel(cellRole));
    panel.add(new JLabel("Text:")).setFont(bold); panel.add(new JLabel(cellText)).setFont(italic);
    panel.add(new JLabel("Width:")).setFont(bold); panel.add(new JLabel(cellWidth));
    panel.add(new JLabel("Height:")).setFont(bold);panel.add(new JLabel(cellHeight));
    panel.add(new JLabel("Effective width:")).setFont(bold);panel.add(new JLabel(cellEffectiveWidth));
    panel.add(new JLabel("Number in collection:")).setFont(bold);panel.add(new JLabel(cellNumber));
    panel.add(new JLabel("SNode:")).setFont(bold);panel.add(new JLabel(cellSNode, icon, SwingConstants.LEFT));
    panel.add(new JLabel("Is Root Cell:")).setFont(bold);panel.add(new JLabel(isRootCell));

    outerPanel.add(panel);

    add(outerPanel, BorderLayout.NORTH);

    pack();

    setAlwaysOnTop(true);
    setResizable(false);
    setTitle("Cell Properties");

    int x = mainFrame.getX() + mainFrame.getWidth() / 2 - getWidth() / 2;
    int y = mainFrame.getY() + mainFrame.getHeight() / 2 - getHeight() / 2;

    setLocation(x, y);


    setVisible(true);
  }

}
