use of blue.orchestra.blueSynthBuilder.Preset in project blue by kunstmusik.
the class PresetPane method setPresetsMenu.
private void setPresetsMenu(PresetGroup pGroup, Menu parent) {
for (PresetGroup subGroup : pGroup.getSubGroups()) {
Menu menu = new Menu(subGroup.getPresetGroupName());
setPresetsMenu(subGroup, menu);
if (parent == null) {
rootMenu.getItems().add(menu);
} else {
parent.getItems().add(menu);
}
}
for (Preset preset : pGroup.getPresets()) {
MenuItem item = new MenuItem(preset.getPresetName());
item.setUserData(preset);
item.setOnAction(presetSelectedAction);
if (parent == null) {
rootMenu.getItems().add(item);
} else {
parent.getItems().add(item);
}
}
if (parent == null) {
rootMenu.getItems().add(new SeparatorMenuItem());
} else {
parent.getItems().add(new SeparatorMenuItem());
}
MenuItem addFolder = new MenuItem("Add Folder");
addFolder.setUserData(pGroup);
addFolder.setOnAction(addFolderAction);
MenuItem addPreset = new MenuItem("Add Preset");
addPreset.setUserData(pGroup);
addPreset.setOnAction(addPresetAction);
if (parent == null) {
MenuItem syncPresets = new MenuItem("Synchronize Presets");
syncPresets.setOnAction(e -> {
PresetsUtilities.synchronizePresets(getPresetGroup(), bsbInterface);
});
MenuItem managePresets = new MenuItem("Manage Presets");
managePresets.setOnAction(e -> {
PresetGroup[] retVal = new PresetGroup[1];
CountDownLatch latch = new CountDownLatch(1);
SwingUtilities.invokeLater(() -> {
try {
if (presetsManager == null) {
presetsManager = new PresetsManagerDialog(WindowManager.getDefault().getMainWindow());
}
retVal[0] = presetsManager.editPresetGroup(pGroup);
} finally {
latch.countDown();
}
});
try {
latch.await();
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
}
if (retVal[0] != null) {
pGroup.setPresets(retVal[0].getPresets());
pGroup.setSubGroups(retVal[0].getSubGroups());
updatePresetMenu();
Preset preset = pGroup.findPresetByUniqueId(pGroup.getCurrentPresetUniqueId());
if (preset == null) {
pGroup.setCurrentPresetUniqueId(null);
pGroup.setCurrentPresetModified(false);
}
updateCurrentPresetUI();
}
});
rootMenu.getItems().addAll(addFolder, addPreset, new SeparatorMenuItem(), syncPresets, managePresets);
} else {
parent.getItems().addAll(addFolder, addPreset);
}
}
use of blue.orchestra.blueSynthBuilder.Preset in project blue by kunstmusik.
the class TransferablePreset method dragGestureRecognized.
@Override
public void dragGestureRecognized(DragGestureEvent dge) {
TreePath path = sourceTree.getSelectionPath();
if ((path == null) || (path.getPathCount() <= 1)) {
// We can't really move the root node (or an empty selection).
return;
}
if (path.getLastPathComponent() instanceof Preset || path.getLastPathComponent() instanceof PresetGroup) {
oldNode = path.getLastPathComponent();
transferable = new TransferablePreset(oldNode);
source.startDrag(dge, null, transferable, this);
}
}
use of blue.orchestra.blueSynthBuilder.Preset in project blue by kunstmusik.
the class PresetsTreeModel method valueForPathChanged.
/*
* (non-Javadoc)
*
* @see javax.swing.tree.TreeModel#valueForPathChanged(javax.swing.tree.TreePath,
* java.lang.Object)
*/
@Override
public void valueForPathChanged(TreePath path, Object newValue) {
Object obj = path.getLastPathComponent();
if (obj instanceof PresetGroup) {
((PresetGroup) obj).setPresetGroupName(newValue.toString());
} else if (obj instanceof Preset) {
((Preset) obj).setPresetName(newValue.toString());
}
TreeModelEvent e = new TreeModelEvent(this, path);
fireNodesChanged(e);
}
use of blue.orchestra.blueSynthBuilder.Preset in project blue by kunstmusik.
the class PresetPane method updateCurrentPresetUI.
protected void updateCurrentPresetUI() {
if (getPresetGroup() == null) {
return;
}
if (getPresetGroup().getCurrentPresetUniqueId() == null) {
currentPresetText.setText(" No Preset Selected");
updateButton.setDisable(true);
;
} else {
PresetGroup pGroup = getPresetGroup();
Preset preset = pGroup.findPresetByUniqueId(pGroup.getCurrentPresetUniqueId());
String presetText = " Current Preset: ";
if (preset != null) {
String presetPath = pGroup.getPresetFullPathName(pGroup.getCurrentPresetUniqueId());
presetText += presetPath;
}
currentPresetText.setText(presetText);
updateButton.setDisable(false);
}
}
use of blue.orchestra.blueSynthBuilder.Preset in project blue by kunstmusik.
the class PresetPane method addPreset.
/**
* @param currentPresetGroup
*/
private void addPreset(PresetGroup currentPresetGroup) {
TextInputDialog dlg = new TextInputDialog();
dlg.setTitle("Enter Preset Name");
dlg.setHeaderText("Enter Preset Name");
dlg.setGraphic(null);
BlueFX.style(dlg.getDialogPane());
Optional<String> str = dlg.showAndWait();
if (!str.isPresent() || str.get().length() == 0) {
return;
}
Preset preset = Preset.createPreset(bsbInterface);
preset.setPresetName(str.get());
currentPresetGroup.getPresets().add(preset);
Collections.sort(currentPresetGroup.getPresets());
getPresetGroup().setCurrentPresetUniqueId(preset.getUniqueId());
getPresetGroup().setCurrentPresetModified(false);
updatePresetMenu();
updateCurrentPresetUI();
}
Aggregations