/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /* * SourceControlsText.java * * Created on 30-Apr-2012, 1:44:47 PM */ package webcamstudio.components; import java.awt.Color; import javax.swing.SpinnerNumberModel; import webcamstudio.streams.SourceText; import webcamstudio.streams.SourceText.Shape; /** * * @author patrick */ public class SourceControlsText extends javax.swing.JPanel { SourceText stream; /** Creates new form SourceControlsText * @param stream */ public SourceControlsText(SourceText stream) { this.stream = stream; initComponents(); SpinnerNumberModel model = new SpinnerNumberModel(100, 0, 100, 1); spinBGOpacity.setModel(model); if( stream.getLoaded()){ txtHexColor.setText(Integer.toHexString(stream.getBackgroundColor())); } else { txtHexColor.setText("000000"); } switch(stream.getBackground()){ case NONE: rdNone.setSelected(true); break; case RECTANGLE: rdRect.setSelected(true); break; case OVAL: rdOval.setSelected(true); break; case ROUNDRECT: rdRoundRect.setSelected(true); break; } spinBGOpacity.setValue((int)(stream.getBackgroundOpacity()*100f)); if (stream.getBackgroundOpacity() != 0) { stream.setBackgroundOpacity(stream.getBackgroundOpacity()); } else { stream.setBackgroundOpacity(0/100f); } if (stream.getBackground() != null){ stream.setBackground(stream.getBackground()); } else { stream.setBackground(Shape.NONE); } } /** 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") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { grpShape = new javax.swing.ButtonGroup(); jLabel1 = new javax.swing.JLabel(); txtHexColor = new javax.swing.JFormattedTextField(); btnSelectColor = new javax.swing.JButton(); rdNone = new javax.swing.JRadioButton(); rdRect = new javax.swing.JRadioButton(); rdOval = new javax.swing.JRadioButton(); jLabel2 = new javax.swing.JLabel(); spinBGOpacity = new javax.swing.JSpinner(); rdRoundRect = new javax.swing.JRadioButton(); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("webcamstudio/Languages"); // NOI18N setName(bundle.getString("TEXT")); // NOI18N jLabel1.setText(bundle.getString("BACKGROUNDCOLOR")); // NOI18N jLabel1.setName("jLabel1"); // NOI18N try { txtHexColor.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("HHHHHH"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } txtHexColor.setName("txtHexColor"); // NOI18N txtHexColor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtHexColorActionPerformed(evt); } }); txtHexColor.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent evt) { txtHexColorFocusLost(evt); } }); btnSelectColor.setIcon(new javax.swing.ImageIcon(getClass().getResource("/webcamstudio/resources/tango/applications-graphics.png"))); // NOI18N btnSelectColor.setToolTipText(bundle.getString("COLOR")); // NOI18N btnSelectColor.setName("btnSelectColor"); // NOI18N btnSelectColor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnSelectColorActionPerformed(evt); } }); grpShape.add(rdNone); rdNone.setSelected(true); rdNone.setText(bundle.getString("NONE")); // NOI18N rdNone.setName("rdNone"); // NOI18N rdNone.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rdNoneActionPerformed(evt); } }); grpShape.add(rdRect); rdRect.setText(bundle.getString("RECTANGLE")); // NOI18N rdRect.setName("rdRect"); // NOI18N rdRect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rdRectActionPerformed(evt); } }); grpShape.add(rdOval); rdOval.setText(bundle.getString("OVAL")); // NOI18N rdOval.setName("rdOval"); // NOI18N rdOval.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rdOvalActionPerformed(evt); } }); jLabel2.setText(bundle.getString("BACKGROUND_OPACITY")); // NOI18N jLabel2.setName("jLabel2"); // NOI18N spinBGOpacity.setName("spinBGOpacity"); // NOI18N spinBGOpacity.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { spinBGOpacityStateChanged(evt); } }); grpShape.add(rdRoundRect); rdRoundRect.setText(bundle.getString("ROUND_RECTANGLE")); // NOI18N rdRoundRect.setName("rdRoundRect"); // NOI18N rdRoundRect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { rdRoundRectActionPerformed(evt); } }); 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) .addGroup(layout.createSequentialGroup() .addComponent(rdRoundRect) .addContainerGap()) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(rdOval) .addComponent(rdRect) .addComponent(rdNone) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtHexColor, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnSelectColor, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) .addGroup(layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinBGOpacity, javax.swing.GroupLayout.DEFAULT_SIZE, 87, Short.MAX_VALUE) .addGap(44, 44, 44)))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(txtHexColor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btnSelectColor, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(rdNone) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rdRect) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rdOval) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rdRoundRect) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(spinBGOpacity, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); }// </editor-fold>//GEN-END:initComponents private void txtHexColorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtHexColorActionPerformed stream.setBackGroundColor(Integer.parseInt(txtHexColor.getText().trim(), 16)); }//GEN-LAST:event_txtHexColorActionPerformed private void txtHexColorFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtHexColorFocusLost stream.setBackGroundColor(Integer.parseInt(txtHexColor.getText().trim(), 16)); }//GEN-LAST:event_txtHexColorFocusLost private void btnSelectColorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSelectColorActionPerformed ColorChooser c = new ColorChooser(null, true); c.setLocationRelativeTo(this); c.setVisible(true); Color color = c.getColor(); if (color != null) { int col = color.getRGB(); String colText = Integer.toHexString(col).substring(2); txtHexColor.setText(colText); stream.setBackGroundColor(col); } }//GEN-LAST:event_btnSelectColorActionPerformed private void rdNoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdNoneActionPerformed stream.setBackground(Shape.NONE); stream.setStrBackground("none"); }//GEN-LAST:event_rdNoneActionPerformed private void rdRectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdRectActionPerformed stream.setBackground(Shape.RECTANGLE); stream.setStrBackground("rectangle"); }//GEN-LAST:event_rdRectActionPerformed private void rdOvalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdOvalActionPerformed stream.setBackground(Shape.OVAL); stream.setStrBackground("oval"); }//GEN-LAST:event_rdOvalActionPerformed private void spinBGOpacityStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinBGOpacityStateChanged stream.setBackgroundOpacity((float)((Integer)spinBGOpacity.getValue())/100f); }//GEN-LAST:event_spinBGOpacityStateChanged private void rdRoundRectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rdRoundRectActionPerformed stream.setBackground(Shape.ROUNDRECT); stream.setStrBackground("roundrect"); }//GEN-LAST:event_rdRoundRectActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnSelectColor; private javax.swing.ButtonGroup grpShape; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JRadioButton rdNone; private javax.swing.JRadioButton rdOval; private javax.swing.JRadioButton rdRect; private javax.swing.JRadioButton rdRoundRect; private javax.swing.JSpinner spinBGOpacity; private javax.swing.JFormattedTextField txtHexColor; // End of variables declaration//GEN-END:variables }