diff options
Diffstat (limited to 'src/com/jsyn/swing/EnvelopeEditorPanel.java')
-rw-r--r-- | src/com/jsyn/swing/EnvelopeEditorPanel.java | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/src/com/jsyn/swing/EnvelopeEditorPanel.java b/src/com/jsyn/swing/EnvelopeEditorPanel.java deleted file mode 100644 index dc9f2cd..0000000 --- a/src/com/jsyn/swing/EnvelopeEditorPanel.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright 2009 Phil Burk, Mobileer Inc - * - * 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 com.jsyn.swing; - -import java.awt.BorderLayout; -import java.awt.Button; -import java.awt.Checkbox; -import java.awt.CheckboxGroup; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Label; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; - -import javax.swing.JPanel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -public class EnvelopeEditorPanel extends JPanel { - EnvelopeEditorBox editor; - Checkbox pointsBox; - Checkbox sustainBox; - Checkbox releaseBox; - Checkbox autoBox; - Button onButton; - Button offButton; - Button clearButton; - Button yUpButton; - Button yDownButton; - DoubleBoundedTextField zoomField; - - public EnvelopeEditorPanel(EnvelopePoints points, int maxFrames) { - setSize(600, 300); - - setLayout(new BorderLayout()); - editor = new EnvelopeEditorBox(); - editor.setMaxPoints(maxFrames); - editor.setBackground(Color.cyan); - editor.setPoints(points); - editor.setMinimumSize(new Dimension(500, 300)); - - add(editor, "Center"); - - JPanel buttonPanel = new JPanel(); - add(buttonPanel, "South"); - - CheckboxGroup cbg = new CheckboxGroup(); - pointsBox = new Checkbox("points", cbg, true); - pointsBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - editor.setMode(EnvelopeEditorBox.EDIT_POINTS); - } - }); - buttonPanel.add(pointsBox); - - sustainBox = new Checkbox("onLoop", cbg, false); - sustainBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - editor.setMode(EnvelopeEditorBox.SELECT_SUSTAIN); - } - }); - buttonPanel.add(sustainBox); - - releaseBox = new Checkbox("offLoop", cbg, false); - releaseBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - editor.setMode(EnvelopeEditorBox.SELECT_RELEASE); - } - }); - buttonPanel.add(releaseBox); - - autoBox = new Checkbox("AutoStop", false); - /* - * buttonPanel.add( onButton = new Button( "On" ) ); onButton.addActionListener( module ); - * buttonPanel.add( offButton = new Button( "Off" ) ); offButton.addActionListener( module - * ); buttonPanel.add( clearButton = new Button( "Clear" ) ); clearButton.addActionListener( - * module ); - */ - buttonPanel.add(yUpButton = new Button("Y*2")); - yUpButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - scaleEnvelopeValues(2.0); - } - }); - - buttonPanel.add(yDownButton = new Button("Y/2")); - yDownButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - scaleEnvelopeValues(0.5); - } - }); - - /* Add a TextField for setting the Y scale. */ - double max = getMaxEnvelopeValue(editor.getPoints()); - editor.setMaxWorldY(max); - buttonPanel.add(new Label("YMax =")); - final DoubleBoundedRangeModel model = new DoubleBoundedRangeModel("YMax", 100000, 1.0, - 100001.0, 1.0); - buttonPanel.add(zoomField = new DoubleBoundedTextField(model, 8)); - model.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - try { - double val = model.getDoubleValue(); - editor.setMaxWorldY(val); - editor.repaint(); - } catch (NumberFormatException exp) { - zoomField.setText("ERROR"); - zoomField.selectAll(); - } - } - }); - - validate(); - } - - /** - * Multiply all the values in the envelope by scalar. - */ - double getMaxEnvelopeValue(EnvelopePoints points) { - double max = 1.0; - for (int i = 0; i < points.size(); i++) { - double value = points.getValue(i); - if (value > max) { - max = value; - } - } - return max; - } - - /** - * Multiply all the values in the envelope by scalar. - */ - void scaleEnvelopeValues(double scalar) { - EnvelopePoints points = editor.getPoints(); - for (int i = 0; i < points.size(); i++) { - double[] dar = points.getPoint(i); - dar[1] = dar[1] * scalar; // scale value - } - points.setDirty(true); - editor.repaint(); - } -} |