モデルにCompressorコンポーネントがあります。
public class Compressor extends MComponent {
public static final double THRESHOLD_MAX = 1;
public static final double THRESHOLD_MIN = 0;
public static final double THRESHOLD_DEFAULT = 1;
private double threshold;
/* <snip> - many other parameters*/
public void setThreshold(double v) { this.threshold = v; }
}
そして、この特定のアプリケーション用に、Java Swing で構築している GUI があります。この GUI には、Compressors パラメーターを表示および制御するためのスライダーやボタンなどが追加されています。
これらのスライダーの一部は線形スケールで動作する必要がありますが、他のスライダーは対数/指数スケールで動作する必要があります (スライダーの移動により、下端で値がわずかに変化し、上端で値が大きく変化します)。終わり)。
スライダーとその移動イベントを簡単に作成する GuiConstructor クラスがあるので、最小値、最大値、指数/線形型、および aq 値 (指数型の場合) を指定して適切に動作します。
gc.addSliderPanel(
panel,
"Threshold",
Compressor.THRESHOLD_MIN,
Compressor.THRESHOLD_MAX,
c.getThreshold(),
GuiConstructor.Scale.LINEAR, /*<-- this line*/
0,
new SetThreshold(c),
DEFAULT_SLIDER_GRAINS,
GuiConstructor.SliderValueType.FLOAT);
問題は、ビューで表示タイプを宣言する必要があるか、それともモデルで表示タイプを指定してもよいかということです。
例えば。
public class Compressor extends MComponent {
public static final double THRESHOLD_MAX = 1;
public static final double THRESHOLD_MIN = 0;
public static final double THRESHOLD_DEFAULT = 1;
public static final GuiConstructor.Scale THRESHOLD_SCALETYPE = GuiConstructor.Scale.LINEAR;
private double threshold;
モデルで指定するというアイデアが気に入っています。表示パラメータについて考える必要があるのは、コンポーネントを組み立てるときではなく、各コンポーネントを作成するときだけだからです。