Files
VisualSapfor/src/_VisualDVM/Passes/All/UpdateProperty.java

147 lines
6.5 KiB
Java
Raw Normal View History

2024-10-14 12:14:01 +03:00
package _VisualDVM.Passes.All;
2025-01-11 19:32:54 +03:00
import Common.MainModule_;
2024-10-14 15:19:13 +03:00
import Common.Passes.Pass;
2025-01-11 02:09:44 +03:00
import Common.Visual.Windows.Dialog.SliderNumberForm;
2025-01-11 20:02:03 +03:00
import Common.Visual.Windows.Dialog.SpinnerNumberForm;
2025-10-30 15:45:29 +03:00
import Common.Visual.Windows.Dialog.Text.TextFieldDialog;
2025-01-11 14:26:24 +03:00
import Common.Visual.Windows.Dialog.VDirectoryChooser;
import Common.Visual.Windows.Dialog.VFileChooser;
import _VisualDVM.Global;
2025-01-18 01:36:02 +03:00
import _VisualDVM.NormalProperties;
2025-01-11 23:19:24 +03:00
import _VisualDVM.Utils;
2025-01-11 20:02:03 +03:00
import javax.swing.*;
2025-01-11 14:26:24 +03:00
import java.io.File;
import java.lang.reflect.Field;
2024-10-09 23:37:58 +03:00
public class UpdateProperty extends Pass<Object> {
String name = "";
Field field = null;
Object oldValue = null;
Object newValue = null;
@Override
protected boolean canStart(Object... args) throws Exception {
name = (String) args[0];
2025-01-18 01:36:02 +03:00
String description = Global.normalProperties.getFieldDescription(name);
field = NormalProperties.class.getField(name);
oldValue = field.get(Global.normalProperties);
2025-01-11 02:09:44 +03:00
newValue = null;
SliderNumberForm sliderNumberForm = new SliderNumberForm();
2025-01-11 14:26:24 +03:00
VDirectoryChooser directoryChooser = new VDirectoryChooser("");
VFileChooser fileChooser = new VFileChooser("", "exe");
2025-01-11 02:09:44 +03:00
//-
2025-03-13 00:32:20 +03:00
if (args.length == 1) {
if (oldValue instanceof Boolean) {
newValue = !(Boolean) oldValue;
2025-01-11 20:27:43 +03:00
return true;
}
2025-03-13 00:32:20 +03:00
switch (name) {
2025-01-11 23:19:24 +03:00
case "Kernels":
if (sliderNumberForm.ShowDialog(description, oldValue, 1, Utils.getMaxKernels()))
2025-03-13 00:32:20 +03:00
newValue = sliderNumberForm.Result;
2025-01-11 23:19:24 +03:00
break;
2025-01-11 22:48:00 +03:00
case "LocalMakePathWindows":
fileChooser.setTitle(description);
File file = fileChooser.ShowDialog();
if (file != null)
newValue = file.getAbsolutePath();
break;
2025-10-30 15:45:29 +03:00
case "PrecompilationFlags":
TextFieldDialog textFieldDialog = new TextFieldDialog();
if (textFieldDialog.ShowDialog(description, oldValue)) {
newValue = textFieldDialog.Result;
if (newValue.toString().isEmpty())
newValue = " ";
}
break;
2025-01-11 02:09:44 +03:00
case "BugReportsAgeLimit":
if (sliderNumberForm.ShowDialog(description, oldValue, 1, 12))
2025-03-13 00:32:20 +03:00
newValue = sliderNumberForm.Result;
2025-01-11 02:09:44 +03:00
break;
2025-01-11 19:32:54 +03:00
case "FastAccessPassesCount":
if (sliderNumberForm.ShowDialog(description, oldValue, 5, 15))
2025-03-13 00:32:20 +03:00
newValue = sliderNumberForm.Result;
2025-01-11 19:32:54 +03:00
break;
2025-01-11 20:02:03 +03:00
case "LastOpenedProjectsCount":
2025-01-11 20:27:43 +03:00
SpinnerNumberForm spinnerNumberForm = new SpinnerNumberForm() {
@Override
public void InitFields() {
fields.setModel(new SpinnerNumberModel(
2025-03-13 00:32:20 +03:00
(int) oldValue,
2025-01-11 20:27:43 +03:00
1,
50,
1));
}
};
2025-01-11 20:02:03 +03:00
if (spinnerNumberForm.ShowDialog(description, oldValue, 1, 50))
2025-03-13 00:32:20 +03:00
newValue = spinnerNumberForm.Result;
2025-01-11 20:02:03 +03:00
break;
2025-01-11 14:26:24 +03:00
case "Workspace":
directoryChooser.setTitle(description);
directoryChooser.SetCurrentDirectory(
2025-01-18 01:36:02 +03:00
Global.normalProperties.Workspace.isEmpty() ? Global.ProjectsDirectory :
new File(Global.normalProperties.Workspace));
2025-01-11 14:26:24 +03:00
File dir = directoryChooser.ShowDialog();
if (dir != null)
newValue = dir.getAbsolutePath();
break;
2025-01-11 02:09:44 +03:00
}
2025-03-13 00:32:20 +03:00
} else
2025-01-11 02:09:44 +03:00
newValue = args[1];
//--
2025-03-13 00:32:20 +03:00
return newValue != null && !newValue.equals(oldValue);
}
@Override
protected void body() throws Exception {
2025-01-18 01:36:02 +03:00
field.set(Global.normalProperties, newValue);
Global.normalProperties.Update();
}
@Override
protected void showDone() throws Exception {
switch (name) {
case "collapseProjectTrees":
if (Global.mainModule.HasProject()) {
if ((boolean) newValue)
Global.mainModule.getUI().getMainWindow().getProjectWindow().CollapseProjectTrees();
2024-10-15 13:35:33 +03:00
else Global.mainModule.getUI().getMainWindow().getProjectWindow().ExpandProjectTrees();
}
break;
case "collapseFileGraphs":
if (Global.mainModule.HasFile()) {
if ((boolean) newValue)
Global.mainModule.getFile().form.CollapseGraphs();
else
Global.mainModule.getFile().form.ExpandGraphs();
}
break;
case "collapseFileMessages":
if (Global.mainModule.HasFile()) {
if ((boolean) newValue)
Global.mainModule.getFile().form.CollapseMessages();
else
Global.mainModule.getFile().form.ExpandMessages();
}
break;
2025-01-11 19:32:54 +03:00
case "FastAccessPassesCount":
MainModule_.instance.getUI().getFastAccessMenuBar().Refresh();
break;
2025-01-11 20:27:43 +03:00
case "ShowFullArraysDeclarations":
if (Global.mainModule.HasProject())
Global.mainModule.getProject().declaratedArrays.ShowUI();
break;
2025-01-11 21:08:48 +03:00
case "ShowFullTabsNames":
Global.mainModule.getUI().getMainWindow().getTestingWindow().RefreshTabsNames();
if (Global.mainModule.HasProject())
Global.mainModule.getUI().getMainWindow().getProjectWindow().RefreshTabsNames();
if (Global.mainModule.HasFile())
Global.mainModule.getFile().form.RefreshTabsNames();
break;
2025-01-11 21:34:17 +03:00
case "SmallScreen":
if (Global.mainModule.HasProject())
Global.mainModule.getUI().getMainWindow().getProjectWindow().SwitchScreen(
2025-01-18 01:36:02 +03:00
Global.normalProperties.SmallScreen);
2025-03-13 00:32:20 +03:00
Global.mainModule.getUI().getMainWindow().getCallbackWindow().SwitchScreen(Global.normalProperties.SmallScreen);
2025-01-11 21:34:17 +03:00
break;
}
}
}