package com.pixelmaid.dresscode.app; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.BoxLayout; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.JTextPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import com.pixelmaid.dresscode.app.ui.ConsoleToolbar; import com.pixelmaid.dresscode.app.ui.ImageButton; import com.pixelmaid.dresscode.app.ui.Toolbar; import com.pixelmaid.dresscode.app.ui.TreeToolbar; public class CodingFrame extends JPanel { /** * */ private static final long serialVersionUID = 1L; private CodeField codeField; private TreeManager drawingTree; public CodeField hiddenCodeField; private JSplitPane codeHolder; private JPanel hiddenCodeHolder; private Console output; private ConsoleToolbar consoleToolbar; private JPanel outputContainer; private JPanel codeContainer; private JPanel treeContainer; private int outputHeight = 200; private JScrollPane scrPane1,scrPane2,scrPane3; //private JTabbedPane codeTabs; private JSplitPane splitPane; private int width; private int height; public CodingFrame(){ } public void init(int w, int he, CodeField c, CodeField h, Console o, Toolbar t, Component d, Color bg,Color sb, Color brdr, ImageButton clearButton){ this.setBorder(null); BorderLayout layout = new BorderLayout(); layout.setHgap(0); layout.setVgap(0); this.setLayout(layout); this.width=w; this.height=he; this.setMaximumSize(new Dimension(width,height)); //codeTabs = new JTabbedPane(); codeHolder = new JSplitPane(); //codeHolder.setLayout(new BorderLayout()); outputContainer = new JPanel(); outputContainer.setLayout(new BorderLayout()); codeContainer = new JPanel(); codeContainer.setBorder(null); codeContainer.setLayout(new BorderLayout()); //hiddeHolder = new JPanel(); //codeHolder.setLayout(new BorderLayout()); this.setPreferredSize(new Dimension(width,height)); codeField= c; hiddenCodeField = h; codeField.setPreferredSize(new Dimension(width,height-outputHeight)); hiddenCodeField.setPreferredSize(new Dimension(width,height-outputHeight)); output = o; output.setPreferredSize(new Dimension(width,outputHeight)); consoleToolbar = new ConsoleToolbar(); consoleToolbar.init(width,25,bg,brdr,clearButton); scrPane1 = new JScrollPane(codeField); scrPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrPane1.getVerticalScrollBar().setPreferredSize(new Dimension(10, 0)); scrPane1.getHorizontalScrollBar().setPreferredSize(new Dimension(0,10)); scrPane1.setBorder(null); scrPane2 = new JScrollPane(output); scrPane2.setBorder(null); scrPane2.getVerticalScrollBar().setPreferredSize(new Dimension(10, 0)); scrPane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrPane3 = new JScrollPane(hiddenCodeField); output.setVisible(true); outputContainer.setVisible(true); outputContainer.setBorder(null); outputContainer.add(consoleToolbar, BorderLayout.PAGE_START); outputContainer.add(scrPane2, BorderLayout.CENTER); codeContainer.add(t, BorderLayout.PAGE_START); codeContainer.add(scrPane1); codeHolder.setOrientation(JSplitPane.VERTICAL_SPLIT ); codeHolder.setTopComponent(codeContainer); codeHolder.setBottomComponent(outputContainer); codeHolder.setBorder(null); codeHolder.setDividerLocation(he-outputHeight-100); codeHolder.setDividerSize(2); codeHolder.setBackground(sb); //codeTabs.add(codeHolder, "untitled"); //codeTabs.setPreferredSize(new Dimension(width-30,height)); //codeTabs.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); //codeTabs.add(scrPane3 , "hidden"); //codeTabs.setEnabledAt(1, false); //Add the toolbar and the log to this panel. splitPane = new JSplitPane(); splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT ); this.add(splitPane); splitPane.setRightComponent(codeHolder); splitPane.setBorder(null); splitPane.setDividerSize(2); splitPane.setBackground(sb); this.setBorder(null); //Create the scroll pane and add the tree to it. splitPane.setLeftComponent(d); //treeView.setMinimumSize(new Dimension(0,0)); //this.add(t, BorderLayout.PAGE_START); this.add(splitPane,BorderLayout.CENTER); this.doLayout(); splitPane.setDividerLocation(100); //splitPane.setEnabled( false ); } public void setCode(String title,String code){ codeField.loadFile(code); setTabTitle(0, title); } public void setTabTitle(int index, String title){ //codeTabs.setTitleAt(index, title); } public void showHiddenTab(String title, String code){ hiddenCodeField.setText(code); //codeTabs.add(scrPane3 , "hidden"); //codeTabs.setEnabledAt(1, true); } public void hideHiddenTab(){ // codeTabs.remove(scrPane3); //if(//codeTabs.getTabCount()>1){ //codeTabs.setEnabledAt(1, false); //} } /* public void showHiddenField(){ codeHolder.remove(scrPane1); codeField.setPreferredSize(new Dimension(width,(height-outputHeight)/2-20)); hiddenCodeField.setPreferredSize(new Dimension(width,(height-outputHeight)/2-20)); codeHolder.add(scrPane1,BorderLayout.PAGE_START); codeHolder.add(scrPane3,BorderLayout.CENTER); codeHolder.doLayout(); this.doLayout(); } public void hideHiddenField(){ codeHolder.remove(scrPane1); codeHolder.remove(scrPane3); codeField.setPreferredSize(new Dimension(width,(height-outputHeight))); codeHolder.add(scrPane1,BorderLayout.CENTER); codeHolder.doLayout(); }*/ }