/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /* * KenaiProjectDetailsPanel.java * * Created on 31.5.2009, 21:13:23 */ package org.netbeans.modules.kenaidashboard.panels; import java.awt.BorderLayout; import javax.swing.JLabel; import org.netbeans.modules.kenai.api.KenaiException; import org.netbeans.modules.kenai.api.KenaiFeature; import org.netbeans.modules.kenai.api.KenaiProject; import org.netbeans.modules.kenaidashboard.utils.UrlLabel; import org.openide.util.Exceptions; /** * * @author joshis */ public class KenaiProjectDetailsPanel extends javax.swing.JPanel { private KenaiProjectDetailsPanel() { } /** Creates new form KenaiProjectDetailsPanel */ public KenaiProjectDetailsPanel(KenaiProject forProject) { try { initComponents(); descTextArea.setText(forProject.getDescription()); resetDetails(forProject); KenaiFeature[] features = forProject.getFeatures(); for (int i = 0; i < features.length; i++) { KenaiFeature kenaiFeature = features[i]; UrlLabel tmpLabel = new UrlLabel(kenaiFeature.getWebLocation().getPath(), kenaiFeature.getWebLocation().getPath()); switch (kenaiFeature.getType()) { case DOWNLOADS: downloads = tmpLabel; break; case WIKI: wiki = tmpLabel; break; } } doLayout(); } catch (KenaiException ex) { Exceptions.printStackTrace(ex); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { descLabel = new javax.swing.JLabel(); descScrollPane = new javax.swing.JScrollPane(); descTextArea = new javax.swing.JTextArea(); detailsLabel = new javax.swing.JLabel(); wikiLabel = new javax.swing.JLabel(); downloadsLabel = new javax.swing.JLabel(); chatLabel = new javax.swing.JLabel(); sourceLabel = new javax.swing.JLabel(); issuesLabel = new javax.swing.JLabel(); wiki = new javax.swing.JLabel(); downloads = new javax.swing.JLabel(); enterChatButton = new javax.swing.JButton(); sourcesDesc = new javax.swing.JLabel(); sourcesRepoUrl = new javax.swing.JTextField(); getSourcesButtn = new javax.swing.JButton(); issuesDesc = new javax.swing.JLabel(); newIssueButton = new javax.swing.JButton(); findIssueButton = new javax.swing.JButton(); queries = new javax.swing.JLabel(); queryComboBox = new javax.swing.JComboBox(); allIssuesButton = new javax.swing.JButton(); unseenIssuesButton = new javax.swing.JButton(); newIssuesButton = new javax.swing.JButton(); detailsPanel = new javax.swing.JPanel(); details = new javax.swing.JLabel(); descLabel.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.descLabel.text")); // NOI18N descScrollPane.setOpaque(false); descTextArea.setColumns(20); descTextArea.setEditable(false); descTextArea.setLineWrap(true); descTextArea.setRows(5); descTextArea.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.descTextArea.text")); // NOI18N descTextArea.setWrapStyleWord(true); descTextArea.setOpaque(false); descScrollPane.setViewportView(descTextArea); detailsLabel.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.detailsLabel.text")); // NOI18N wikiLabel.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.wikiLabel.text")); // NOI18N downloadsLabel.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.downloadsLabel.text")); // NOI18N chatLabel.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.chatLabel.text")); // NOI18N sourceLabel.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.sourceLabel.text")); // NOI18N issuesLabel.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.issuesLabel.text")); // NOI18N wiki.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.wiki.text")); // NOI18N downloads.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.downloads.text")); // NOI18N enterChatButton.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.enterChatButton.text")); // NOI18N enterChatButton.setEnabled(false); sourcesDesc.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.sourcesDesc.text")); // NOI18N sourcesRepoUrl.setEditable(false); sourcesRepoUrl.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.sourcesRepoUrl.text")); // NOI18N getSourcesButtn.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.getSourcesButtn.text")); // NOI18N getSourcesButtn.setEnabled(false); issuesDesc.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.issuesDesc.text")); // NOI18N newIssueButton.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.newIssueButton.text")); // NOI18N newIssueButton.setEnabled(false); findIssueButton.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.findIssueButton.text")); // NOI18N findIssueButton.setEnabled(false); queries.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.queries.text")); // NOI18N queryComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "All Issues", "My Issues" })); queryComboBox.setEnabled(false); allIssuesButton.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.allIssuesButton.text")); // NOI18N allIssuesButton.setEnabled(false); unseenIssuesButton.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.unseenIssuesButton.text")); // NOI18N unseenIssuesButton.setEnabled(false); newIssuesButton.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.newIssuesButton.text")); // NOI18N newIssuesButton.setEnabled(false); detailsPanel.setLayout(new java.awt.BorderLayout()); details.setText(org.openide.util.NbBundle.getMessage(KenaiProjectDetailsPanel.class, "KenaiProjectDetailsPanel.details.text")); // NOI18N detailsPanel.add(details, java.awt.BorderLayout.CENTER); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(issuesLabel, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(sourceLabel, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(chatLabel, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(downloadsLabel, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(wikiLabel, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(detailsLabel, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(descLabel, javax.swing.GroupLayout.Alignment.TRAILING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(queries) .addComponent(descScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE) .addComponent(sourcesDesc) .addComponent(sourcesRepoUrl, javax.swing.GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE) .addComponent(getSourcesButtn) .addComponent(issuesDesc) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(queryComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(newIssueButton, javax.swing.GroupLayout.Alignment.LEADING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(allIssuesButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(unseenIssuesButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(newIssuesButton)) .addComponent(findIssueButton))) .addComponent(enterChatButton) .addComponent(downloads) .addComponent(wiki) .addComponent(detailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 433, Short.MAX_VALUE)) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {enterChatButton, findIssueButton, getSourcesButtn, newIssueButton}); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {allIssuesButton, newIssuesButton, unseenIssuesButton}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(descScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(descLabel)) .addGap(17, 17, 17) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(detailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 15, Short.MAX_VALUE) .addComponent(detailsLabel)) .addGap(15, 15, 15) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(wikiLabel) .addComponent(wiki)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(downloadsLabel) .addComponent(downloads)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(chatLabel) .addComponent(enterChatButton)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(sourceLabel) .addComponent(sourcesDesc)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(sourcesRepoUrl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(getSourcesButtn) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(issuesLabel) .addComponent(issuesDesc)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(newIssueButton) .addComponent(findIssueButton)) .addGap(18, 18, 18) .addComponent(queries) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(queryComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(allIssuesButton) .addComponent(unseenIssuesButton) .addComponent(newIssuesButton)) .addContainerGap(42, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {detailsLabel, detailsPanel}); }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton allIssuesButton; private javax.swing.JLabel chatLabel; private javax.swing.JLabel descLabel; private javax.swing.JScrollPane descScrollPane; private javax.swing.JTextArea descTextArea; private javax.swing.JLabel details; private javax.swing.JLabel detailsLabel; private javax.swing.JPanel detailsPanel; private javax.swing.JLabel downloads; private javax.swing.JLabel downloadsLabel; private javax.swing.JButton enterChatButton; private javax.swing.JButton findIssueButton; private javax.swing.JButton getSourcesButtn; private javax.swing.JLabel issuesDesc; private javax.swing.JLabel issuesLabel; private javax.swing.JButton newIssueButton; private javax.swing.JButton newIssuesButton; private javax.swing.JLabel queries; private javax.swing.JComboBox queryComboBox; private javax.swing.JLabel sourceLabel; private javax.swing.JLabel sourcesDesc; private javax.swing.JTextField sourcesRepoUrl; private javax.swing.JButton unseenIssuesButton; private javax.swing.JLabel wiki; private javax.swing.JLabel wikiLabel; // End of variables declaration//GEN-END:variables private void resetDetails(KenaiProject forProject) { JLabel test = new UrlLabel(forProject.getWebLocation().getPath(), forProject.getWebLocation().getPath()); detailsPanel.removeAll(); detailsPanel.add(test, BorderLayout.CENTER); } }