cp5.getTooltip().setDelay(200);
P5EventListener listener = new P5EventListener(this);
//selected visual
Collector col = Collector.getInstance();
int nrOfVisuals = col.getAllVisuals().size();
int w = singleVisualXSize < MINIMAL_VISUAL_WIDTH ? MINIMAL_VISUAL_WIDTH-1 : singleVisualXSize-1;
selectedVisualList = cp5.addRadioButton(GuiElement.CURRENT_VISUAL.guiText(), getVisualCenter(col), p5GuiYOffset-58);
selectedVisualList.setItemsPerRow(nrOfVisuals);
selectedVisualList.setNoneSelectedAllowed(false);
for (i=0; i<nrOfVisuals; i++) {
String s = messages.getString("GeneratorGui.GUI_SELECTED_VISUAL")+(1+i); //$NON-NLS-1$
Toggle t = cp5.addToggle(s, 0, 0, w, 13);
t.setCaptionLabel(s);
selectedVisualList.addItem(t, i);
cp5.getTooltip().register(s, messages.getString("GeneratorGui.GUI_SELECTED_VISUAL_TOOLTIP_PREFIX")+(1+i)+messages.getString("GeneratorGui.GUI_SELECTED_VISUAL_TOOLTIP_POSTFIX")); //$NON-NLS-1$ //$NON-NLS-2$
}
selectedVisualList.moveTo(ALWAYS_VISIBLE_TAB);
cp5.addTextlabel("gen1", messages.getString("GeneratorGui.GUI_GENERATOR_LAYER_1"), GENERIC_X_OFS+3, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("gen2", messages.getString("GeneratorGui.GUI_GENERATOR_LAYER_2"), GENERIC_X_OFS+3+3*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("fx1", messages.getString("GeneratorGui.GUI_EFFECT_LAYER_1"), GENERIC_X_OFS+3+1*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("fx2", messages.getString("GeneratorGui.GUI_EFFECT_LAYER_2"), GENERIC_X_OFS+3+4*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("mix2", messages.getString("GeneratorGui.GUI_LAYER_MIXER"), GENERIC_X_OFS+3+2*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("gen1", messages.getString("GeneratorGui.GUI_TOOLTIP_GENERATOR_1")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("gen2", messages.getString("GeneratorGui.GUI_TOOLTIP_GENERATOR_2")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("fx1", messages.getString("GeneratorGui.GUI_TOOLTIP_EFFECT_1")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("fx2", messages.getString("GeneratorGui.GUI_TOOLTIP_EFFECT_2")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("mix2", messages.getString("GeneratorGui.GUI_TOOLTIP_MIXER")); //$NON-NLS-1$ //$NON-NLS-2$
//Generator
generatorListOne = cp5.addDropdownList(GuiElement.GENERATOR_ONE_DROPDOWN.guiText(),
GENERIC_X_OFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
generatorListTwo = cp5.addDropdownList(GuiElement.GENERATOR_TWO_DROPDOWN.guiText(),
GENERIC_X_OFS+3*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(generatorListOne);
Theme.themeDropdownList(generatorListTwo);
for (GeneratorName gn: GeneratorName.values()) {
generatorListOne.addItem(gn.guiText(), gn.getId());
generatorListTwo.addItem(gn.guiText(), gn.getId());
}
generatorListOne.setLabel(generatorListOne.getItem(1).getName());
generatorListTwo.setLabel(generatorListTwo.getItem(1).getName());
generatorListOne.moveTo(ALWAYS_VISIBLE_TAB);
generatorListTwo.moveTo(ALWAYS_VISIBLE_TAB);
generatorListOne.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
generatorListTwo.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
//Effect
effectListOne = cp5.addDropdownList(GuiElement.EFFECT_ONE_DROPDOWN.guiText(),
GENERIC_X_OFS+1*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
effectListTwo = cp5.addDropdownList(GuiElement.EFFECT_TWO_DROPDOWN.guiText(),
GENERIC_X_OFS+4*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(effectListOne);
Theme.themeDropdownList(effectListTwo);
for (EffectName gn: EffectName.values()) {
effectListOne.addItem(gn.guiText(), gn.getId());
effectListTwo.addItem(gn.guiText(), gn.getId());
}
effectListOne.setLabel(effectListOne.getItem(0).getName());
effectListTwo.setLabel(effectListTwo.getItem(0).getName());
effectListOne.moveTo(ALWAYS_VISIBLE_TAB);
effectListTwo.moveTo(ALWAYS_VISIBLE_TAB);
effectListOne.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
effectListTwo.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
//Mixer
mixerList = cp5.addDropdownList(GuiElement.MIXER_DROPDOWN.guiText(),
GENERIC_X_OFS+2*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(mixerList);
for (MixerName gn: MixerName.values()) {
mixerList.addItem(gn.guiText(), gn.getId());
}
mixerList.setLabel(mixerList.getItem(0).getName());
mixerList.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
mixerList.moveTo(ALWAYS_VISIBLE_TAB);
//---------------------------------
//TABS
//---------------------------------
final int yPosStartLabel = p5GuiYOffset+50;
final int yPosStartDrowdown = p5GuiYOffset+36;
cp5.getWindow().setPositionOfTabs(GENERIC_X_OFS, this.getHeight()-20);
//there a default tab which is present all the time. rename this tab
Tab generatorTab = cp5.getTab("default"); //$NON-NLS-1$
allTabs.add(generatorTab);
generatorTab.setLabel(messages.getString("GeneratorGui.TAB_GENERATOR_EFFECT")); //$NON-NLS-1$
Tab outputTab = cp5.addTab(messages.getString("GeneratorGui.TAB_SINGLE_OUTPUT_MAPPING")); //$NON-NLS-1$
allTabs.add(outputTab);
Tab allOutputTab = null;
//add all output mapping only if multiple output panels exist
if (nrOfVisuals>2) {
allOutputTab = cp5.addTab(messages.getString("GeneratorGui.TAB_ALL_OUTPUT_MAPPING")); //$NON-NLS-1$
allOutputTab.setColorForeground(0xffff0000);
allTabs.add(allOutputTab);
}
Tab randomTab = cp5.addTab(messages.getString("GeneratorGui.TAB_RANDOMIZE")); //$NON-NLS-1$
allTabs.add(randomTab);
Tab presetTab = cp5.addTab(messages.getString("GeneratorGui.TAB_PRESETS")); //$NON-NLS-1$
allTabs.add(presetTab);
Tab infoTab = cp5.addTab(messages.getString("GeneratorGui.TAB_INFO")); //$NON-NLS-1$
allTabs.add(infoTab);
Tab helpTab = cp5.addTab(messages.getString("GeneratorGui.TAB_HELP")); //$NON-NLS-1$
allTabs.add(helpTab);
generatorTab.setColorForeground(0xffff0000);
outputTab.setColorForeground(0xffff0000);
randomTab.setColorForeground(0xffff0000);
presetTab.setColorForeground(0xffff0000);
helpTab.setColorForeground(0xffff0000);
generatorTab.bringToFront();
//-------------
//Generic Options
//-------------
//generator speed slider
generatorSpeedSlider = cp5.addSlider(GuiElement.GENERATOR_SPEED.guiText(),
0f, 2.0f, 1f, 38+GENERIC_X_OFS, p5GuiYOffset+97, 140, 14);
generatorSpeedSlider.setSliderMode(Slider.FIX);
generatorSpeedSlider.setGroup(generatorTab);
generatorSpeedSlider.setDecimalPrecision(0);
generatorSpeedSlider.setRange(0, 200);
generatorSpeedSlider.setLabelVisible(true);
//beat animation
cp5.addTextlabel("beatWorkmode", messages.getString("GeneratorGui.BEAT_WORKMODE"),
38+GENERIC_X_OFS+2*Theme.DROPBOX_XOFS, p5GuiYOffset+113+5).moveTo(generatorTab).getValueLabel();
beatWorkmode = cp5.addDropdownList(GuiElement.BEAT_WORKMODE.guiText(),
38+GENERIC_X_OFS+2*Theme.DROPBOX_XOFS, p5GuiYOffset+113, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(beatWorkmode);
for (BeatToAnimation bta: BeatToAnimation.values()) {
beatWorkmode.addItem(bta.guiText(), bta.getId());
}
beatWorkmode.setLabel(beatWorkmode.getItem(0).getName());
beatWorkmode.setGroup(generatorTab);
beatWorkmode.setHeight(Theme.DROPBOXLIST_HEIGHT);
//freeze update
freeze = cp5.addToggle(GuiElement.BUTTON_TOGGLE_FREEZE.guiText(), 730, 2, 15, 15).moveTo(ALWAYS_VISIBLE_TAB);
freeze.setLabelVisible(false);
cp5.addTextlabel("freezeUpdateTxt", messages.getString("GeneratorGui.GUI_TOGGLE_FREEZE"), 745, 5).moveTo(ALWAYS_VISIBLE_TAB);
cp5.getTooltip().register(GuiElement.BUTTON_TOGGLE_FREEZE.guiText(),messages.getString("GeneratorGui.TOOLTIP_FREEZE")); //$NON-NLS-1$
//toggle internal visuals
Toggle t2 = cp5.addToggle(GuiElement.BUTTON_TOGGLE_INTERNAL_VISUALS.guiText(), 730, 20, 15, 15).moveTo(ALWAYS_VISIBLE_TAB);
t2.setLabelVisible(false);
cp5.addTextlabel("toggleIKnternalVisualsTxt", messages.getString("GeneratorGui.GUI_TOGGLE_INTERNAL_BUFFER"), 745, 23).moveTo(ALWAYS_VISIBLE_TAB);; //$NON-NLS-1$
cp5.getTooltip().register(GuiElement.BUTTON_TOGGLE_INTERNAL_VISUALS.guiText(),messages.getString("GeneratorGui.TOOLTIP_GUI_TOGGLE_INTERNAL_BUFFER")); //$NON-NLS-1$
//-------------
//GENERATOR/EFFECT tab
//-------------
int genFxXOfs = 38+GENERIC_X_OFS;
//EFFECTS OPTIONS
//---------------
int genElYOfs = yPosStartDrowdown+105;
cp5.addTextlabel("genOptionsFx", messages.getString("GeneratorGui.EFFECT_OPTIONS"), GENERIC_X_OFS, genElYOfs).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
//threshold slider
thresholdSlider = cp5.addSlider(GuiElement.THRESHOLD.guiText(),
0, 255, 255, genFxXOfs, genElYOfs+60, 140, 14);
thresholdSlider.setSliderMode(Slider.FIX);
thresholdSlider.setGroup(generatorTab);
thresholdSlider.setDecimalPrecision(0);
//rotozoom slider
fxRotoSlider = cp5.addSlider(GuiElement.FX_ROTOZOOMER.guiText(),
-127, 127, 0, genFxXOfs+2*Theme.DROPBOX_XOFS, genElYOfs+60, 140, 14);
fxRotoSlider.setSliderMode(Slider.FIX);
fxRotoSlider.setGroup(generatorTab);
fxRotoSlider.setDecimalPrecision(0);
fxRotoSlider.setCaptionLabel(messages.getString("GeneratorGui.EFFECT_ROTOZOOM_SPEED")); //$NON-NLS-1$
genElYOfs += 25;
//texturedeform options
cp5.addTextlabel("genTextdefOpt", messages.getString("GeneratorGui.TEXTUREDDEFORM_OPTIONS"), genFxXOfs+3+0*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
textureDeformOptions = cp5.addDropdownList(GuiElement.TEXTUREDEFORM_OPTIONS.guiText(),
genFxXOfs+0*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 80);
Theme.themeDropdownList(textureDeformOptions);
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_ANAMORPHOSIS"), 1); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_SPIRAL"), 2); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_ROTATINGTUNNEL"), 3); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_START"), 4); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_TUNNEL"), 5); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_FLOWER"), 6); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_CLOUD"), 7); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_PLANAR"), 8); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_CIRCLE"), 9); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_SPIRAL"), 10); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_3D"), 11); //$NON-NLS-1$
textureDeformOptions.setLabel(textureDeformOptions.getItem(1).getName());
textureDeformOptions.setGroup(generatorTab);
cp5.addTextlabel("genZoomOpt", messages.getString("GeneratorGui.ZOOM_OPTIONS"), genFxXOfs+3+1*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
zoomOptions = cp5.addDropdownList(GuiElement.ZOOM_OPTIONS.guiText(),
genFxXOfs+1*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 80);
Theme.themeDropdownList(zoomOptions);
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_IN"), 0); //$NON-NLS-1$
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_OUT"), 1); //$NON-NLS-1$
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_HORIZONTAL"), 2); //$NON-NLS-1$
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_VERTICAL"), 3); //$NON-NLS-1$
zoomOptions.setLabel(zoomOptions.getItem(0).getName());
zoomOptions.setGroup(generatorTab);
//GENERATOR OPTIONS
//-----------------
FileUtils fu = new FileUtils();
genElYOfs = p5GuiYOffset+35;
cp5.addTextlabel("genOptionsGen", messages.getString("GeneratorGui.GENERATOR_OPTIONS"), GENERIC_X_OFS, genElYOfs).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
genElYOfs=yPosStartLabel+5;
//blinkenlights
cp5.addTextlabel("genBlinken", messages.getString("GeneratorGui.BLINKENLIGHT_LOAD"), genFxXOfs+3, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
blinkenLightsList = cp5.addDropdownList(GuiElement.BLINKENLIGHTS_DROPDOWN.guiText(),
genFxXOfs, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(blinkenLightsList);
blinkenLightsList.addItems(fu.findBlinkenFiles());
blinkenLightsList.setLabel(blinkenLightsList.getItem(1).getName());
blinkenLightsList.setGroup(generatorTab);
blinkenLightsList.setHeight(Theme.DROPBOXLIST_HEIGHT);
//images
cp5.addTextlabel("genImg", messages.getString("GeneratorGui.IMAGE_LOAD"), genFxXOfs+3+1*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
imageList = cp5.addDropdownList(GuiElement.IMAGE_DROPDOWN.guiText(),
genFxXOfs+Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(imageList);
imageList.addItems(fu.findImagesFiles());
imageList.setLabel(imageList.getItem(1).getName());
imageList.setGroup(generatorTab);
imageList.setHeight(Theme.DROPBOXLIST_HEIGHT);
//colorscroll options
cp5.addTextlabel("genColorScroll", messages.getString("GeneratorGui.COLORSCROLL_OPTIONS"), genFxXOfs+3+2*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
colorScrollList = cp5.addDropdownList(GuiElement.COLORSCROLL_OPTIONS.guiText(),
genFxXOfs+2*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(colorScrollList);
for (ScrollMode sm: ScrollMode.values()) {
colorScrollList.addItem(sm.getDisplayName(), sm.getMode()); //$NON-NLS-1$ //$NON-NLS-2$
}
colorScrollList.setGroup(generatorTab);
colorScrollList.setHeight(Theme.DROPBOXLIST_HEIGHT);
colorScrollList.setLabel(col.getPixelControllerGenerator().getScrollMode().getDisplayName());
//add textfield options
cp5.addTextlabel("genTextwriterOpt", messages.getString("GeneratorGui.TEXTWRITER_OPTION"), genFxXOfs+3+3*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
textwriterOption = cp5.addDropdownList(GuiElement.TEXTWR_OPTION.guiText(),
genFxXOfs+3*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(textwriterOption);
textwriterOption.addItem(messages.getString("GeneratorGui.TEXTWRITER_PINGPONG"), 0); //$NON-NLS-1$
textwriterOption.addItem(messages.getString("GeneratorGui.TEXTWRITER_LEFT"), 1); //$NON-NLS-1$
textwriterOption.setLabel(textwriterOption.getItem(0).getName());
textwriterOption.setGroup(generatorTab);
textwriterOption.setHeight(Theme.DROPBOXLIST_HEIGHT);
//add textfield
textGenerator = cp5.addTextfield(GuiElement.TEXTFIELD, GuiElement.TEXTFIELD.guiText(), GuiElement.TEXTFIELD.guiText(), genFxXOfs+3+4*Theme.DROPBOX_XOFS, genElYOfs-6, Theme.DROPBOXLIST_LENGTH, 16); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
passThroughMode = cp5.addTextlabel("passThroughMode", "", genFxXOfs, yPosStartDrowdown+50).moveTo(generatorTab).getValueLabel();
passThroughMode.setColor(0xffff0000);
//-----------------
//Single Output tab
//-----------------
//brightness control
cp5.addTextlabel("brightnessControllTxt", messages.getString("GeneratorGui.BRIGHTNESS"), 5, yPosStartDrowdown+95).moveTo(outputTab);
brightnessControll = cp5.addSlider(GuiElement.BRIGHTNESS.guiText(), 0, 255, 255, 38, yPosStartDrowdown+110, 160, 14);
brightnessControll.setSliderMode(Slider.FIX);
brightnessControll.setGroup(outputTab);
brightnessControll.setDecimalPrecision(0);
brightnessControll.setNumberOfTickMarks(11);
brightnessControll.setRange(0, 100);
brightnessControll.setLabelVisible(false);
int nrOfOutputs = Collector.getInstance().getAllOutputMappings().size();
selectedOutputs = cp5.addRadioButton(GuiElement.CURRENT_OUTPUT.guiText(), GENERIC_X_OFS, yPosStartDrowdown);
selectedOutputs.setItemsPerRow(nrOfOutputs);
selectedOutputs.setNoneSelectedAllowed(false);
for (i=0; i<nrOfOutputs; i++) {
String s = messages.getString("GeneratorGui.OUTPUT_NR")+(1+i); //$NON-NLS-1$
Toggle t = cp5.addToggle(s, 0, 0, singleVisualXSize, 13);
t.setCaptionLabel(s);
selectedOutputs.addItem(t, i);
cp5.getTooltip().register(s, messages.getString("GeneratorGui.TOOLTIP_OUTPUT_PREFIX")+(1+i)+messages.getString("GeneratorGui.TOOLTIP_OUTPUT_POSTFIX")); //$NON-NLS-1$ //$NON-NLS-2$
}
selectedOutputs.moveTo(outputTab);
//visual
cp5.addTextlabel("singleOutputVisual", messages.getString("GeneratorGui.OUTPUT_VISUAL"), 38, yPosStartDrowdown+60).moveTo(outputTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
dropdownOutputVisual = GeneratorGuiHelper.createVisualDropdown(cp5,
GuiElement.OUTPUT_SELECTED_VISUAL_DROPDOWN.guiText(), yPosStartDrowdown+10, nrOfVisuals);
dropdownOutputVisual.moveTo(outputTab);
//Fader
cp5.addTextlabel("singleOutputTransition", messages.getString("GeneratorGui.OUTPUT_TRANSITION"), 38+Theme.DROPBOX_XOFS*2, yPosStartDrowdown+60).moveTo(outputTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
dropdownOutputFader = GeneratorGuiHelper.createFaderDropdown(cp5,
GuiElement.OUTPUT_FADER_DROPDOWN.guiText(), yPosStartDrowdown+10);
dropdownOutputFader.moveTo(outputTab);
//--------------
//All Output tab
//--------------
if (allOutputTab!=null) {
cp5.addTextlabel("allOutputTabLabel", messages.getString("GeneratorGui.TEXT_CHANGE_ALL_OUTPUT_MAPPINGS"), 20, yPosStartDrowdown) //$NON-NLS-1$ //$NON-NLS-2$
.moveTo(allOutputTab).getValueLabel();
cp5.addTextlabel("allOutputVisual", messages.getString("GeneratorGui.ALL_OUTPUT_VISUAL"), 38, yPosStartDrowdown+68).moveTo(allOutputTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
allOutputTabVis = GeneratorGuiHelper.createVisualDropdown(cp5,
GuiElement.OUTPUT_ALL_SELECTED_VISUAL_DROPDOWN.guiText(), yPosStartDrowdown+20, nrOfVisuals);
allOutputTabVis.moveTo(allOutputTab);
//Fader
cp5.addTextlabel("allOutputTransition", messages.getString("GeneratorGui.ALL_OUTPUT_TRANSITION"), 38+Theme.DROPBOX_XOFS*2, yPosStartDrowdown+68).moveTo(allOutputTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
allOutputTabFader = GeneratorGuiHelper.createFaderDropdown(cp5,
GuiElement.OUTPUT_ALL_FADER_DROPDOWN.guiText(), yPosStartDrowdown+20);
allOutputTabFader.moveTo(allOutputTab);
}
//palette dropdown list
cp5.addTextlabel("colSet", messages.getString("GeneratorGui.SELECT_COLORSET"), GENERIC_X_OFS+5*Theme.DROPBOX_XOFS, p5GuiYOffset+3).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
colorSetList = cp5.addDropdownList(GuiElement.COLOR_SET_DROPDOWN.guiText(),
GENERIC_X_OFS+5*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(colorSetList);
i=0;
for (ColorSet cs: Collector.getInstance().getColorSets()) {
colorSetList.addItem(cs.getName(), i);
i++;
}
colorSetList.setLabel(colorSetList.getItem(1).getName());
colorSetList.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
colorSetList.moveTo(ALWAYS_VISIBLE_TAB);
cp5.getTooltip().register("colSet", messages.getString("GeneratorGui.TOOLTIP_COLORSET")); //$NON-NLS-1$ //$NON-NLS-2$
//----------
//RANDOM Tab
//----------
Textlabel tRnd = cp5.addTextlabel("rndDesc", //$NON-NLS-1$
messages.getString("GeneratorGui.TEXT_RANDOM_MODE_SELECT_ELEMENTS"), //$NON-NLS-1$
20, yPosStartDrowdown);
tRnd.moveTo(randomTab).getValueLabel();
randomCheckbox = cp5.addCheckBox(GuiElement.RANDOM_ELEMENT.guiText())
.setPosition(35, 20+yPosStartDrowdown)
.setSize(40, 20)
.setColorForeground(color(120))
.setColorActive(color(255))
.setColorLabel(color(255))
.setItemsPerRow(5)
.setSpacingColumn(90)
;
for (ShufflerOffset so: ShufflerOffset.values()) {
randomCheckbox.addItem(so.guiText(), i);
}
randomCheckbox.activateAll();
randomCheckbox.moveTo(randomTab);
//Button
randomSelection = cp5.addButton(GuiElement.BUTTON_RANDOM_CONFIGURATION.guiText(), 0,
GENERIC_X_OFS+5*Theme.DROPBOX_XOFS, p5GuiYOffset+30, 110, 15);
randomSelection.setCaptionLabel(messages.getString("GeneratorGui.RANDOMIZE")); //$NON-NLS-1$
randomSelection.moveTo(randomTab);
cp5.getTooltip().register(GuiElement.BUTTON_RANDOM_CONFIGURATION.guiText(), messages.getString("GeneratorGui.TOOLTIP_RANDOMIZE")); //$NON-NLS-1$
randomPresets = cp5.addButton(GuiElement.BUTTON_RANDOM_PRESET.guiText(), 0,
GENERIC_X_OFS+5*Theme.DROPBOX_XOFS, p5GuiYOffset+55, 110, 15);
randomPresets.setCaptionLabel(messages.getString("GeneratorGui.RANDOM_PRESET")); //$NON-NLS-1$
randomPresets.moveTo(randomTab);
cp5.getTooltip().register(GuiElement.BUTTON_RANDOM_PRESET.guiText(),messages.getString("GeneratorGui.TOOLTIP_RANDOM_PRESET")); //$NON-NLS-1$
randomButtons = cp5.addRadioButton(GuiElement.BUTTONS_RANDOM_MODE.guiText())
.setPosition(GENERIC_X_OFS+5*Theme.DROPBOX_XOFS, p5GuiYOffset+85)
.setSize(45, 15)
.setColorForeground(color(120))
.setColorActive(color(255))
.setColorLabel(color(255))
.setItemsPerRow(1)
.setSpacingColumn(26)
.setNoneSelectedAllowed(true)
.moveTo(randomTab);
randomButtons.addItem(messages.getString("GeneratorGui.RANDOM_MODE"), 0);
randomButtons.addItem(messages.getString("GeneratorGui.RANDOM_MODE_PRESET"), 1);
//----------
//PRESET Tab
//----------
presetButtons = cp5.addRadioButton(GuiElement.PRESET_BUTTONS.guiText())
.setPosition(10, yPosStartDrowdown)
.setSize(24, 14)
.setColorForeground(color(120))
.setColorActive(color(255))
.setColorLabel(color(255))
.setItemsPerRow(16)
.setSpacingColumn(26)
.setNoneSelectedAllowed(false);
for (i=0; i<96+48; i++) {
String label = ""+i; //$NON-NLS-1$
if (i<10) {
label = "0"+i; //$NON-NLS-1$
}
presetButtons.addItem(label, i);
}
presetButtons.activate(col.getSelectedPreset());
presetButtons.moveTo(presetTab);
loadPreset = cp5.addButton(GuiElement.LOAD_PRESET.guiText(), 0,
GENERIC_X_OFS+2*Theme.DROPBOX_XOFS, yPosStartDrowdown+170, 100, 15);
loadPreset.setCaptionLabel(GuiElement.LOAD_PRESET.guiText());
loadPreset.moveTo(presetTab);
cp5.getTooltip().register(GuiElement.LOAD_PRESET.guiText(),messages.getString("GeneratorGui.TOOLTIP_LOAD_PRESET")); //$NON-NLS-1$
savePreset = cp5.addButton(GuiElement.SAVE_PRESET.guiText(), 0,
GENERIC_X_OFS+3*Theme.DROPBOX_XOFS, yPosStartDrowdown+170, 100, 15);
savePreset.setCaptionLabel(GuiElement.SAVE_PRESET.guiText());
savePreset.moveTo(presetTab);
cp5.getTooltip().register(GuiElement.SAVE_PRESET.guiText(),messages.getString("GeneratorGui.TOOLTIP_SAVE_PRESET")); //$NON-NLS-1$
presetName = cp5.addTextfield("presetName", 20, yPosStartDrowdown+170, Theme.DROPBOXLIST_LENGTH*2, 16).moveTo(presetTab); //$NON-NLS-1$
presetInfo = cp5.addTextlabel("presetInfo", "", 160, yPosStartDrowdown+170+18).moveTo(presetTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
updateCurrentPresetState();
//-------------
//Info tab
//-------------
int yposAdd = 18;
int xposAdd = 200;
//center it, we have 3 row which are 160 pixels wide
int xOfs = (this.getWidth()-3*xposAdd)/2;
int nfoYPos = yPosStartDrowdown+20;
int nfoXPos = xOfs;
cp5.addTextlabel("nfoFpsConf", messages.getString("GeneratorGui.CONF_FPS")+col.getFps(), nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
currentFps = cp5.addTextlabel("nfoFpsCurrent", "", nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
runtime = cp5.addTextlabel("nfoRuntime", "", nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
cp5.addTextlabel("nfoSrvVersion", messages.getString("GeneratorGui.SERVER_VERSION")+Collector.getInstance().getPixConStat().getVersion(), nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
float volNorm = Collector.getInstance().getSound().getVolumeNormalized();
currentVolume = cp5.addTextlabel("nfoVolumeCurrent", messages.getString("GeneratorGui.CURRENT_VOLUME")+volNorm, nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
cp5.addTextlabel("nfoWindowHeight", messages.getString("GeneratorGui.INFO_WINDOW_HEIGHT")+this.getHeight(), nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
int ibsX= col.getPixelControllerGenerator().getGenerator(0).getInternalBufferXSize();
int ibsY= col.getPixelControllerGenerator().getGenerator(0).getInternalBufferYSize();
cp5.addTextlabel("nfoInternalBuffer", messages.getString("GeneratorGui.INFO_INTERNAL_BUFFERSIZE")+ibsX+"/"+ibsY, nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
Button saveScreenshot = cp5.addButton(GuiElement.SAVE_SCREENSHOT.guiText(), 0,
nfoXPos, nfoYPos, 110, 15);
saveScreenshot.setCaptionLabel(messages.getString("GeneratorGui.SAVE_SCREENSHOT")); //$NON-NLS-1$
saveScreenshot.moveTo(infoTab);
cp5.getTooltip().register(GuiElement.SAVE_SCREENSHOT.guiText(), messages.getString("GeneratorGui.TOOLTIP_SAVE_SCREENSHOT")); //$NON-NLS-1$
nfoXPos += xposAdd;
nfoYPos = yPosStartDrowdown+20;
IOutput output = col.getOutputDevice();
if (output!=null) {
String gammaText = WordUtils.capitalizeFully(StringUtils.replace(output.getGammaType().toString(), "_", " "));
cp5.addTextlabel("nfoGamma", messages.getString("GeneratorGui.GAMMA_CORRECTION")+gammaText, nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
cp5.addTextlabel("nfoBps", messages.getString("GeneratorGui.OUTPUT_BPP")+output.getBpp(), nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
}
sentFrames = cp5.addTextlabel("nfoSentFrames", "", nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
outputErrorCounter = cp5.addTextlabel("nfoErrorFrames", "", nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
outputState = cp5.addTextlabel("nfoOutputState", "", nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
nfoXPos += xposAdd;
nfoYPos = yPosStartDrowdown+20;
String oscPort = col.getPh().getProperty(ConfigConstant.NET_OSC_LISTENING_PORT, ""); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("nfoOscPort", messages.getString("GeneratorGui.OSC_PORT")+oscPort, nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
nfoYPos+=yposAdd;
oscStatistic = cp5.addTextlabel("nfoOscStatistic", messages.getString("GeneratorGui.OSC_STATISTIC"), nfoXPos, nfoYPos).moveTo(infoTab).getValueLabel();
nfoYPos+=yposAdd;
//-------------
//Help tab
//-------------
int hlpYOfs = yPosStartDrowdown;
int hlpXOfs1 = 20;
int hlpXOfs2 = 240;
int hlpYposAdd = 15;
cp5.addTextlabel("hlpHeader1", messages.getString("GeneratorGui.HLP_HEADER1"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd/2;
cp5.addTextlabel("hlpHeader2", messages.getString("GeneratorGui.HLP_HEADER2"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("hlpHeader3", messages.getString("GeneratorGui.HLP_HEADER3"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("hlpHeader4", messages.getString("GeneratorGui.HLP_HEADER4"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
hlpYOfs += hlpYposAdd/2;
cp5.addTextlabel("hlpKeyHeader", messages.getString("GeneratorGui.HLP_KEYBINDING_HEADER"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpXOfs1 *=2 ;
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("HLP_KEY_19", messages.getString("GeneratorGui.HLP_KEY_19"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("HLP_KEY_F", messages.getString("GeneratorGui.HLP_KEY_F"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("HLP_KEY_G", messages.getString("GeneratorGui.HLP_KEY_G"), hlpXOfs2, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("HLP_KEY_W", messages.getString("GeneratorGui.HLP_KEY_W"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("HLP_KEY_E", messages.getString("GeneratorGui.HLP_KEY_E"), hlpXOfs2, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("HLP_KEY_M", messages.getString("GeneratorGui.HLP_KEY_M"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("HLP_KEY_C", messages.getString("GeneratorGui.HLP_KEY_C"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("HLP_KEY_R", messages.getString("GeneratorGui.HLP_KEY_R"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
hlpYOfs += hlpYposAdd;
cp5.addTextlabel("HLP_KEY_LEFT", messages.getString("GeneratorGui.HLP_KEY_LEFT"), hlpXOfs1, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("HLP_KEY_RIGHT", messages.getString("GeneratorGui.HLP_KEY_RIGHT"), hlpXOfs2, hlpYOfs).moveTo(helpTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
//----------
// LOGO
//----------
try {
logo = loadImage(fu.getDataDir()+File.separator+"gui"+File.separatorChar+"guilogo.jpg");
LOG.log(Level.INFO, "GUI logo loaded");
} catch (Exception e) {
LOG.log(Level.INFO, "Failed to load gui logo!",e);
}
//----------
// MISC
//----------
int xSizeForEachWidget = (windowWidth-2*GENERIC_X_OFS)/NR_OF_WIDGETS;
cp5.addTextlabel("frameDesc", messages.getString("GeneratorGui.FRAME_PROGRESS"), GENERIC_X_OFS, GENERIC_Y_OFS).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("sndDesc", messages.getString("GeneratorGui.SOUND_DESC"), GENERIC_X_OFS+xSizeForEachWidget, GENERIC_Y_OFS).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("sndVol", messages.getString("GeneratorGui.INPUT_VOLUME"), GENERIC_X_OFS+xSizeForEachWidget*2, GENERIC_Y_OFS).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("outputDevice", messages.getString("GeneratorGui.OUTPUT_DEVICE"), GENERIC_X_OFS+xSizeForEachWidget*3, GENERIC_Y_OFS).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("outputDeviceName", col.getOutputDeviceName(), 15+GENERIC_X_OFS+xSizeForEachWidget*3, 2+GENERIC_Y_OFS+10).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$
//register event listener
cp5.addListener(listener);
//select first visual
selectedVisualList.activate(0);
selectedOutputs.activate(0);
//register callback function
GuiUpdateFeedback guf = new GuiUpdateFeedback(this);
col.addObserver(guf);
col.notifyGuiUpdate();
initialized = true;
}