private MyCheckboxTreeCellRenderer( final SelectionManager selectionManager, Map<VirtualFile, String> modulesSet, final Project project, final JTree tree, final Collection<VirtualFile> roots) { super(new BorderLayout()); mySelectionManager = selectionManager; myModulesSet = modulesSet; myRoots = roots; setBackground(tree.getBackground()); myColoredRenderer = new ColoredTreeCellRenderer() { @Override public void customizeCellRenderer( JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { append(value.toString()); } }; myFictive = new JBList(); myFictive.setBackground(tree.getBackground()); myFictive.setSelectionBackground(UIUtil.getListSelectionBackground()); myFictive.setSelectionForeground(UIUtil.getListSelectionForeground()); myTextRenderer = new WithModulesListCellRenderer(project, myModulesSet) { @Override protected void putParentPath(Object value, FilePath path, FilePath self) { if (myRoots.contains(self.getVirtualFile())) { super.putParentPath(value, path, self); } } }; myTextRenderer.setBackground(tree.getBackground()); myCheckbox = new JCheckBox(); myCheckbox.setBackground(tree.getBackground()); myEmpty = new JLabel(""); add(myCheckbox, BorderLayout.WEST); add(myTextRenderer, BorderLayout.CENTER); myCheckbox.setVisible(true); }
/** * The constructor creates the NodeTable and DirectedGraph taken the information from files * lines-gbg.txt and stops-gbg.txt and makes itself visible. */ public ShortRoute(String file) { // try to convert to UTF-8 across plattforms to make Swedish chars work // System.out.println("charset = " + java.nio.charset.Charset.defaultCharset()); // MacRoman macintosh Windows-1252 ISO 8859-1 UTF-8 try { // convert whatever this file is encoded in to UTF-8, // kill the exception (can't happen) introText = new String( introText.getBytes(java.nio.charset.Charset.defaultCharset().toString()), "UTF-8"); felTextStart = new String( felTextStart.getBytes(java.nio.charset.Charset.defaultCharset().toString()), "UTF-8"); felTextSlut = new String( felTextSlut.getBytes(java.nio.charset.Charset.defaultCharset().toString()), "UTF-8"); frome = new String(frome.getBytes(java.nio.charset.Charset.defaultCharset().toString()), "UTF-8"); } catch (UnsupportedEncodingException e) { System.exit(0); } // read the graph and draw it in a separate window // creates the graph and fills the p-queue "names" karta.setLocation(50, 250); if (file == null) { readAndDrawGraph(); } else { readAndDrawBIGGraph(file); } System.out.println("Version with sorting fixed"); // debug // now to the graphics in the Frame // Left part // select is a panel for structuring the left part // i.e label, textfield for "from", label, textfield for "to" JPanel select = new JPanel(new GridLayout(4, 1)); select.setBackground(Color.yellow); select.add(new JLabel("Ange startpunkt !", JLabel.CENTER)); select.add(from); select.add(new JLabel("Ange slutpunkt !", JLabel.CENTER)); select.add(to); from.setBackground(Color.white); from.setForeground(Color.blue); to.setBackground(Color.white); to.setForeground(Color.blue); from.addActionListener(this); to.addActionListener(this); // Middle part // route is the middle text area part where messages are displayed // give the middle text area a scrollbar to the right route = new JTextArea(introText, 12, 40); route.setEditable(false); JScrollPane routeScrollPane = new JScrollPane(route); routeScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); route.setBackground(Color.white); route.setForeground(Color.blue); // Rigth part JLabel head = new JLabel(" **** Alternativ ***** "); head.setForeground(Color.red); // add all stations to the right scrollpane // tanken är att dom skall vara valbara men det fungerar inte än // En JList vill ha en ListModel som parameter // En ListModel är ett interface som implementeras av klassen AbstractListModel // DefaultListModel ärver AbstractListModel DefaultListModel<String> valList = new DefaultListModel<String>(); JList<String> alternativ = new JList<String>(valList); alternativ.setBackground(Color.white); alternativ.setForeground(Color.blue); // add a scroll pane to the station list in alternativ stationList = new JScrollPane(alternativ); // read names from p-queue and load them into the list while (!names.isEmpty()) valList.addElement(names.poll()); // panel for structure JPanel valPanel = new JPanel(new BorderLayout()); valPanel.setBackground(Color.white); valPanel.add(head, "North"); valPanel.add(stationList, "Center"); // put it all together in the frame add(select, "West"); add(routeScrollPane, "Center"); add(valPanel, "East"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setVisible(true); } // end ShortRoute
/** Initializes the graphical components */ public void init() { username = getParameter("username"); if (username == null) { username = JOptionPane.showInputDialog( this, "Please enter a username", "Login", JOptionPane.QUESTION_MESSAGE); } try { PORT = Integer.valueOf(getParameter("port")).intValue(); } catch (NumberFormatException e) { PORT = 42412; } URL url = getDocumentBase(); site = url.getHost(); locationURL = "http://" + site + ":" + url.getPort() + "/" + url.getPath(); setSize(615, 362); c = getContentPane(); c.setBackground(new Color(224, 224, 224)); if (site == null || locationURL == null) { c.add(new JLabel("ERROR: did not recieve needed data from page")); } myAction = new MyAction(); myKeyListener = new MyKeyListener(); myMouseListener = new MyMouseListener(); myHyperlinkListener = new MyHyperlinkListener(); c.setLayout(null); cboChannels = new JComboBox(); cboChannels.setBounds(5, 5, 150, 24); butChannel = new JButton("Join"); butChannel.setToolTipText("Join channel"); butChannel.addActionListener(myAction); butChannel.setBounds(160, 5, 60, 24); butCreate = new JButton("Create"); butCreate.setToolTipText("Create new channel"); butCreate.addActionListener(myAction); butCreate.setBounds(230, 5, 100, 24); butCreate.setEnabled(false); butInvite = new JButton("Invite"); butInvite.setToolTipText("Invite Friend"); butInvite.addActionListener(myAction); butInvite.setBounds(340, 5, 80, 24); mainChat = new ChatPane(this); textScroller = new JScrollPane( mainChat, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); textScroller.setBounds(5, 34, 500, 270); userList = new JList(); userList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); userList.setCellRenderer(new MyCellRenderer()); userList.setBackground(new Color(249, 249, 250)); JScrollPane userScroller = new JScrollPane(userList); userScroller.setBounds(510, 34, 100, 297); messageText = new JTextField(); messageText.setBounds(5, 309, 500, 22); messageText.setColumns(10); messageText.setBackground(new Color(249, 249, 250)); JMenuItem item; popup = new JPopupMenu("test"); popup.add("whisper").addActionListener(myAction); popup.add("private message").addActionListener(myAction); popup.add("ignore").addActionListener(myAction); popup.add("clear ignore list").addActionListener(myAction); conNo = new ImageIcon(getURL("images/connect_no.gif")); conYes = new ImageIcon(getURL("images/connect_established.gif")); secNo = new ImageIcon(getURL("images/decrypted.gif")); secYes = new ImageIcon(getURL("images/encrypted.gif")); conIcon = new JLabel(conNo); conIcon.setBorder(new EtchedBorder()); secIcon = new JLabel(secNo); secIcon.setBorder(new EtchedBorder()); conIcon.setBounds(563, 334, 22, 22); secIcon.setBounds(588, 334, 22, 22); bottomText = new JLabel( "<html><body><font color=#445577><b>" + "LlamaChat " + VERSION + "</b></font> © " + "<a href=\"" + linkURL + "\">Joseph Monti</a> 2002-2003" + "</body></html>"); bottomText.setBounds(5, 336, 500, 20); c.add(cboChannels); c.add(butChannel); c.add(butCreate); c.add(butInvite); c.add(textScroller); c.add(userScroller); c.add(messageText); c.add(conIcon); c.add(secIcon); c.add(bottomText); userList.addMouseListener(myMouseListener); messageText.addKeyListener(myKeyListener); bottomText.addMouseListener(myMouseListener); users = new ArrayList(); ignores = new ArrayList(5); afks = new ArrayList(5); admins = new ArrayList(5); history = new CommandHistory(10); admin = false; channels = new Hashtable(); privates = new PrivateMsg(this); showUserStatus = false; myColors[0] = new Color(200, 0, 0); myColors[1] = new Color(0, 150, 0); myColors[2] = new Color(0, 0, 200); rect = new Rectangle(0, 0, 1, 1); String opening = "<font color=#333333>" + "==================================<br>" + "Welcome to LlamaChat " + VERSION + "<br>" + "If you need assistance, type \\help<br>" + "Enjoy your stay!<br>" + "Maestria Aplicada en Redes<br>" + "==================================<br></font>"; HTMLDocument doc = (HTMLDocument) mainChat.getDocument(); HTMLEditorKit kit = (HTMLEditorKit) mainChat.getEditorKit(); try { kit.insertHTML(doc, doc.getLength(), opening, 0, 0, HTML.Tag.FONT); } catch (Throwable t) { t.printStackTrace(System.out); } // validate the name if (!username.matches("[\\w_-]+?")) { error( "username contains invalid characters, changing to " + "'invalid' for now. " + "Type \\rename to chose a new name"); username = "******"; } if (username.length() > 10) { username = username.substring(0, 10); error("username too long, changed to " + username); } connect(); }