01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: /**
18: * @author Dennis Ushakov
19: * @version $Revision$
20: */package javax.swing.colorchooser;
21:
22: import java.awt.Color;
23:
24: import javax.swing.Icon;
25: import javax.swing.JColorChooser;
26: import javax.swing.JPanel;
27: import javax.swing.event.ChangeEvent;
28: import javax.swing.event.ChangeListener;
29:
30: public abstract class AbstractColorChooserPanel extends JPanel {
31: int mnemonic;
32: int displayedMnemonicIndex = -1;
33:
34: private JColorChooser colorChooser;
35: private ChangeListener modelListener;
36:
37: public int getMnemonic() {
38: return mnemonic;
39: }
40:
41: public int getDisplayedMnemonicIndex() {
42: return displayedMnemonicIndex;
43: }
44:
45: public void installChooserPanel(final JColorChooser enclosingChooser) {
46: colorChooser = enclosingChooser;
47: modelListener = new ChangeListener() {
48: public void stateChanged(ChangeEvent e) {
49: updateChooser();
50: }
51: };
52: buildChooser();
53: updateChooser();
54: colorChooser.getSelectionModel().addChangeListener(
55: modelListener);
56: }
57:
58: public void uninstallChooserPanel(
59: final JColorChooser enclosingChooser) {
60: colorChooser.getSelectionModel().removeChangeListener(
61: modelListener);
62: modelListener = null;
63: colorChooser = null;
64: }
65:
66: public ColorSelectionModel getColorSelectionModel() {
67: return colorChooser.getSelectionModel();
68: }
69:
70: protected Color getColorFromModel() {
71: return colorChooser.getSelectionModel().getSelectedColor();
72: }
73:
74: public abstract String getDisplayName();
75:
76: public abstract Icon getSmallDisplayIcon();
77:
78: public abstract Icon getLargeDisplayIcon();
79:
80: public abstract void updateChooser();
81:
82: protected abstract void buildChooser();
83:
84: }
|