mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-03-29 20:20:56 +02:00
- Windows-sizes and dividers of the panels will be saved now in the xml file
- changed the filter panel to a flowpanel to increase usability at smaller screens
This commit is contained in:
@@ -9,7 +9,7 @@ public class ApplicationConstants {
|
|||||||
/**
|
/**
|
||||||
* Name of file to store preferences in.
|
* Name of file to store preferences in.
|
||||||
*/
|
*/
|
||||||
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.0;
|
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.17;
|
||||||
|
|
||||||
public static final String VERSIONINFOURLFORUPDATES_KST4CONTEST = "https://do5amf.funkerportal.de/kst4ContestVersionInfo.xml";
|
public static final String VERSIONINFOURLFORUPDATES_KST4CONTEST = "https://do5amf.funkerportal.de/kst4ContestVersionInfo.xml";
|
||||||
public static final String VERSIONINFDOWNLOADEDLOCALFILE = "kst4ContestVersionInfo.xml";
|
public static final String VERSIONINFDOWNLOADEDLOCALFILE = "kst4ContestVersionInfo.xml";
|
||||||
|
|||||||
@@ -37,13 +37,13 @@ public class UpdateChecker {
|
|||||||
|
|
||||||
|
|
||||||
System.out.println("[Updatechecker: checking for updates...]");
|
System.out.println("[Updatechecker: checking for updates...]");
|
||||||
double currentVersionNumber = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
|
// double currentVersionNumber = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String versionInfoDownloadedFromServerFileName = ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, ApplicationConstants.VERSIONINFDOWNLOADEDLOCALFILE);
|
String versionInfoDownloadedFromServerFileName = ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, ApplicationConstants.VERSIONINFDOWNLOADEDLOCALFILE);
|
||||||
String versionInfoXMLURLAtServer = ApplicationConstants.VERSIONINFOURLFORUPDATES_KST4CONTEST;
|
String versionInfoXMLURLAtServer = ApplicationConstants.VERSIONINFOURLFORUPDATES_KST4CONTEST;
|
||||||
double currentVersion = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
|
// double currentVersion = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
|
||||||
//DOWNLOAD from URL, then parse, then do anything with it...
|
//DOWNLOAD from URL, then parse, then do anything with it...
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -230,7 +230,7 @@ public class UpdateChecker {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
String toString = "";
|
String toString = "";
|
||||||
|
|
||||||
toString += this.currentVersion;
|
// toString += this.currentVersion;
|
||||||
|
|
||||||
return toString;
|
return toString;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -214,15 +214,95 @@ public class ChatPreferences {
|
|||||||
String unwkd_unworkedStnRequesterBeaconsText;
|
String unwkd_unworkedStnRequesterBeaconsText;
|
||||||
String unwkd_beaconUnworkedstationsPrefix;
|
String unwkd_beaconUnworkedstationsPrefix;
|
||||||
|
|
||||||
// public String getMYQRG() {
|
/*********************************************************************************
|
||||||
// return MYQRG;
|
*
|
||||||
// }
|
* GUI SETTING VARIABLES WILL BE BUFFERED HERE, DEFAULTS TOO
|
||||||
//
|
*
|
||||||
// public void setMYQRG(String mYQRG) {
|
*********************************************************************************/
|
||||||
//
|
|
||||||
// MYQRG = mYQRG;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
private double[] GUIscn_ChatwindowMainSceneSizeHW = new double[] {768, 1234};
|
||||||
|
private double[] GUIclusterAndQSOMonStage_SceneSizeHW = new double[] {700, 500};
|
||||||
|
private double[] GUIstage_updateStage_SceneSizeHW = new double[] {640, 480};
|
||||||
|
private double[] GUIsettingsStageSceneSizeHW = new double[] {720, 768};
|
||||||
|
|
||||||
|
private double[] GUIselectedCallSignSplitPane_dividerposition = {0.55};
|
||||||
|
private double[] GUImainWindowLeftSplitPane_dividerposition = {0.51};
|
||||||
|
private double[] GUImessageSectionSplitpane_dividerposition = {0.62, 0.7, 0.75}; //3 deviders now //TODO: more should be possible?
|
||||||
|
private double[] GUImainWindowRightSplitPane_dividerposition = {0.72};
|
||||||
|
private double[] GUIpnl_directedMSGWin_dividerpositionDefault = {0.8};
|
||||||
|
|
||||||
|
|
||||||
|
public double[] getGUIscn_ChatwindowMainSceneSizeHW() {
|
||||||
|
return GUIscn_ChatwindowMainSceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUIscn_ChatwindowMainSceneSizeHW(double[] GUIscn_ChatwindowMainSceneSizeHW) {
|
||||||
|
this.GUIscn_ChatwindowMainSceneSizeHW = GUIscn_ChatwindowMainSceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUIclusterAndQSOMonStage_SceneSizeHW() {
|
||||||
|
return GUIclusterAndQSOMonStage_SceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUIclusterAndQSOMonStage_SceneSizeHW(double[] GUIclusterAndQSOMonStage_SceneSizeHW) {
|
||||||
|
this.GUIclusterAndQSOMonStage_SceneSizeHW = GUIclusterAndQSOMonStage_SceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUIstage_updateStage_SceneSizeHW() {
|
||||||
|
return GUIstage_updateStage_SceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUIstage_updateStage_SceneSizeHW(double[] GUIstage_updateStage_SceneSizeHW) {
|
||||||
|
this.GUIstage_updateStage_SceneSizeHW = GUIstage_updateStage_SceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUIsettingsStageSceneSizeHW() {
|
||||||
|
return GUIsettingsStageSceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUIsettingsStageSceneSizeHW(double[] GUIsettingsStageSceneSizeHW) {
|
||||||
|
this.GUIsettingsStageSceneSizeHW = GUIsettingsStageSceneSizeHW;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUIselectedCallSignSplitPane_dividerposition() {
|
||||||
|
return GUIselectedCallSignSplitPane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUIselectedCallSignSplitPane_dividerposition(double[] GUIselectedCallSignSplitPane_dividerposition) {
|
||||||
|
this.GUIselectedCallSignSplitPane_dividerposition = GUIselectedCallSignSplitPane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUImainWindowLeftSplitPane_dividerposition() {
|
||||||
|
return GUImainWindowLeftSplitPane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUImainWindowLeftSplitPane_dividerposition(double[] GUImainWindowLeftSplitPane_dividerposition) {
|
||||||
|
this.GUImainWindowLeftSplitPane_dividerposition = GUImainWindowLeftSplitPane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUImessageSectionSplitpane_dividerposition() {
|
||||||
|
return GUImessageSectionSplitpane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUImessageSectionSplitpane_dividerposition(double[] GUImessageSectionSplitpane_dividerposition) {
|
||||||
|
this.GUImessageSectionSplitpane_dividerposition = GUImessageSectionSplitpane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUImainWindowRightSplitPane_dividerposition() {
|
||||||
|
return GUImainWindowRightSplitPane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUImainWindowRightSplitPane_dividerposition(double[] GUImainWindowRightSplitPane_dividerposition) {
|
||||||
|
this.GUImainWindowRightSplitPane_dividerposition = GUImainWindowRightSplitPane_dividerposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double[] getGUIpnl_directedMSGWin_dividerpositionDefault() {
|
||||||
|
return GUIpnl_directedMSGWin_dividerpositionDefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGUIpnl_directedMSGWin_dividerpositionDefault(double[] GUIpnl_directedMSGWin_dividerpositionDefault) {
|
||||||
|
this.GUIpnl_directedMSGWin_dividerpositionDefault = GUIpnl_directedMSGWin_dividerpositionDefault;
|
||||||
|
}
|
||||||
|
|
||||||
public double getStn_antennaBeamWidthDeg() {
|
public double getStn_antennaBeamWidthDeg() {
|
||||||
return stn_antennaBeamWidthDeg;
|
return stn_antennaBeamWidthDeg;
|
||||||
@@ -802,8 +882,7 @@ public class ChatPreferences {
|
|||||||
|
|
||||||
Element beaconUnworkedstations = doc.createElement("beaconUnworkedstations");
|
Element beaconUnworkedstations = doc.createElement("beaconUnworkedstations");
|
||||||
rootElement.appendChild(beaconUnworkedstations);
|
rootElement.appendChild(beaconUnworkedstations);
|
||||||
|
|
||||||
|
|
||||||
Element beaconUnworkedstationsText = doc.createElement("beaconUnworkedstationsText");
|
Element beaconUnworkedstationsText = doc.createElement("beaconUnworkedstationsText");
|
||||||
beaconUnworkedstationsText.setTextContent(this.getUnwkd_unworkedStnRequesterBeaconsText());
|
beaconUnworkedstationsText.setTextContent(this.getUnwkd_unworkedStnRequesterBeaconsText());
|
||||||
beaconUnworkedstations.appendChild(beaconUnworkedstationsText);
|
beaconUnworkedstations.appendChild(beaconUnworkedstationsText);
|
||||||
@@ -819,10 +898,62 @@ public class ChatPreferences {
|
|||||||
Element beaconUnworkedstationsPrefix = doc.createElement("beaconUnworkedstationsPrefix");
|
Element beaconUnworkedstationsPrefix = doc.createElement("beaconUnworkedstationsPrefix");
|
||||||
beaconUnworkedstationsPrefix.setTextContent(this.getUnwkd_beaconUnworkedstationsPrefix());
|
beaconUnworkedstationsPrefix.setTextContent(this.getUnwkd_beaconUnworkedstationsPrefix());
|
||||||
beaconUnworkedstations.appendChild(beaconUnworkedstationsPrefix);
|
beaconUnworkedstations.appendChild(beaconUnworkedstationsPrefix);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
writeXml(doc, System.out);
|
/****************************
|
||||||
|
* GUI BEHAVIOUR
|
||||||
|
***************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* window sizes
|
||||||
|
*/
|
||||||
|
Element guiOptions = doc.createElement("guiOptions");
|
||||||
|
rootElement.appendChild(guiOptions);
|
||||||
|
|
||||||
|
Element GUIscn_ChatwindowMainSceneSizeHW = doc.createElement("GUIscn_ChatwindowMainSceneSizeHW");
|
||||||
|
GUIscn_ChatwindowMainSceneSizeHW.setTextContent(this.getGUIscn_ChatwindowMainSceneSizeHW()[0]+";"+this.getGUIscn_ChatwindowMainSceneSizeHW()[1]);
|
||||||
|
guiOptions.appendChild(GUIscn_ChatwindowMainSceneSizeHW);
|
||||||
|
|
||||||
|
Element GUIclusterAndQSOMonStage_SceneSizeHW = doc.createElement("GUIclusterAndQSOMonStage_SceneSizeHW");
|
||||||
|
GUIclusterAndQSOMonStage_SceneSizeHW.setTextContent(this.getGUIclusterAndQSOMonStage_SceneSizeHW()[0]+";"+this.getGUIclusterAndQSOMonStage_SceneSizeHW()[1]);
|
||||||
|
guiOptions.appendChild(GUIclusterAndQSOMonStage_SceneSizeHW);
|
||||||
|
|
||||||
|
Element GUIstage_updateStage_SceneSizeHW = doc.createElement("GUIstage_updateStage_SceneSizeHW");
|
||||||
|
GUIstage_updateStage_SceneSizeHW.setTextContent(this.getGUIstage_updateStage_SceneSizeHW()[0]+";"+this.getGUIstage_updateStage_SceneSizeHW()[1]);
|
||||||
|
guiOptions.appendChild(GUIstage_updateStage_SceneSizeHW);
|
||||||
|
|
||||||
|
Element GUIsettingsStageSceneSizeHW = doc.createElement("GUIsettingsStageSceneSizeHW");
|
||||||
|
GUIsettingsStageSceneSizeHW.setTextContent(this.getGUIsettingsStageSceneSizeHW()[0]+";"+this.getGUIsettingsStageSceneSizeHW()[1]);
|
||||||
|
guiOptions.appendChild(GUIsettingsStageSceneSizeHW);
|
||||||
|
|
||||||
|
/************************************
|
||||||
|
* save splitpanel divider positions
|
||||||
|
************************************/
|
||||||
|
|
||||||
|
Element GUIselectedCallSignSplitPane_dividerposition = doc.createElement("GUIselectedCallSignSplitPane_dividerposition");
|
||||||
|
GUIselectedCallSignSplitPane_dividerposition.setTextContent(doubleArrayToCSVString(getGUIselectedCallSignSplitPane_dividerposition()));
|
||||||
|
guiOptions.appendChild(GUIselectedCallSignSplitPane_dividerposition);
|
||||||
|
|
||||||
|
Element GUImainWindowLeftSplitPane_dividerposition = doc.createElement("GUImainWindowLeftSplitPane_dividerposition");
|
||||||
|
GUImainWindowLeftSplitPane_dividerposition.setTextContent(doubleArrayToCSVString(getGUImainWindowLeftSplitPane_dividerposition()));
|
||||||
|
guiOptions.appendChild(GUImainWindowLeftSplitPane_dividerposition);
|
||||||
|
|
||||||
|
Element GUImessageSectionSplitpane_dividerposition = doc.createElement("GUImessageSectionSplitpane_dividerposition");
|
||||||
|
GUImessageSectionSplitpane_dividerposition.setTextContent(doubleArrayToCSVString(getGUImessageSectionSplitpane_dividerposition()));
|
||||||
|
guiOptions.appendChild(GUImessageSectionSplitpane_dividerposition);
|
||||||
|
|
||||||
|
Element GUImainWindowRightSplitPane_dividerposition = doc.createElement("GUImainWindowRightSplitPane_dividerposition");
|
||||||
|
GUImainWindowRightSplitPane_dividerposition.setTextContent(doubleArrayToCSVString(getGUImainWindowRightSplitPane_dividerposition()));
|
||||||
|
guiOptions.appendChild(GUImainWindowRightSplitPane_dividerposition);
|
||||||
|
|
||||||
|
Element GUIpnl_directedMSGWin_dividerpositionDefault = doc.createElement("GUIpnl_directedMSGWin_dividerpositionDefault");
|
||||||
|
GUIpnl_directedMSGWin_dividerpositionDefault.setTextContent(doubleArrayToCSVString(getGUIpnl_directedMSGWin_dividerpositionDefault()));
|
||||||
|
guiOptions.appendChild(GUIpnl_directedMSGWin_dividerpositionDefault);
|
||||||
|
|
||||||
|
/****************************************************************************************
|
||||||
|
****************************** now write this XML! *************************************
|
||||||
|
****************************************************************************************/
|
||||||
|
|
||||||
|
writeXml(doc, System.out);
|
||||||
|
|
||||||
// write dom document to a file
|
// write dom document to a file
|
||||||
try (FileOutputStream output =
|
try (FileOutputStream output =
|
||||||
@@ -887,6 +1018,7 @@ public class ChatPreferences {
|
|||||||
DocumentBuilder db = dbf.newDocumentBuilder();
|
DocumentBuilder db = dbf.newDocumentBuilder();
|
||||||
Document doc = db.parse(xmlConfigFile);
|
Document doc = db.parse(xmlConfigFile);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* case station settings
|
* case station settings
|
||||||
*
|
*
|
||||||
@@ -1417,6 +1549,105 @@ public class ChatPreferences {
|
|||||||
+ unwkd_unworkedStnRequesterBeaconsText);
|
+ unwkd_unworkedStnRequesterBeaconsText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************
|
||||||
|
*
|
||||||
|
* case read GUI options
|
||||||
|
*
|
||||||
|
***********************************************/
|
||||||
|
list = doc.getElementsByTagName("guiOptions");
|
||||||
|
if (list.getLength() != 0) {
|
||||||
|
|
||||||
|
for (int temp = 0; temp < list.getLength(); temp++) {
|
||||||
|
|
||||||
|
Node node = list.item(temp);
|
||||||
|
|
||||||
|
if (node.getNodeType() == Node.ELEMENT_NODE) {
|
||||||
|
|
||||||
|
Element element = (Element) node;
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
|
String GUIscn_ChatwindowMainSceneSizeHW = element.getElementsByTagName("GUIscn_ChatwindowMainSceneSizeHW").item(0)
|
||||||
|
.getTextContent();
|
||||||
|
|
||||||
|
for (int i = 0; i < (GUIscn_ChatwindowMainSceneSizeHW.split(";").length); i++) {
|
||||||
|
this.getGUIscn_ChatwindowMainSceneSizeHW()[i] =
|
||||||
|
Double.parseDouble(GUIscn_ChatwindowMainSceneSizeHW.split(";")[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(
|
||||||
|
"[ChatPreferences, info]: Set the GUIscn_ChatwindowMainSceneSizeHW size to " + GUIclusterAndQSOMonStage_SceneSizeHW);
|
||||||
|
|
||||||
|
|
||||||
|
String GUIclusterAndQSOMonStage_SceneSizeHW = element.getElementsByTagName("GUIclusterAndQSOMonStage_SceneSizeHW").item(0)
|
||||||
|
.getTextContent();
|
||||||
|
|
||||||
|
for (int i = 0; i < (GUIclusterAndQSOMonStage_SceneSizeHW.split(";").length); i++) {
|
||||||
|
this.getGUIclusterAndQSOMonStage_SceneSizeHW()[i] =
|
||||||
|
Double.parseDouble(GUIclusterAndQSOMonStage_SceneSizeHW.split(";")[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
String GUIselectedCallSignSplitPane_dividerposition = element.getElementsByTagName("GUIselectedCallSignSplitPane_dividerposition").item(0)
|
||||||
|
.getTextContent();
|
||||||
|
this.setGUIselectedCallSignSplitPane_dividerposition(csvStringToDoubleArray(GUIselectedCallSignSplitPane_dividerposition));
|
||||||
|
|
||||||
|
String GUImainWindowLeftSplitPane_dividerposition = element.getElementsByTagName("GUImainWindowLeftSplitPane_dividerposition").item(0)
|
||||||
|
.getTextContent();
|
||||||
|
this.setGUImainWindowLeftSplitPane_dividerposition(csvStringToDoubleArray(GUImainWindowLeftSplitPane_dividerposition));
|
||||||
|
|
||||||
|
String GUImessageSectionSplitpane_dividerposition = element.getElementsByTagName("GUImessageSectionSplitpane_dividerposition").item(0)
|
||||||
|
.getTextContent();
|
||||||
|
this.setGUImessageSectionSplitpane_dividerposition(csvStringToDoubleArray(GUImessageSectionSplitpane_dividerposition));
|
||||||
|
|
||||||
|
String GUImainWindowRightSplitPane_dividerposition = element.getElementsByTagName("GUImainWindowRightSplitPane_dividerposition").item(0)
|
||||||
|
.getTextContent();
|
||||||
|
this.setGUImainWindowRightSplitPane_dividerposition(csvStringToDoubleArray(GUImainWindowRightSplitPane_dividerposition));
|
||||||
|
|
||||||
|
String GUIpnl_directedMSGWin_dividerpositionDefault = element.getElementsByTagName("GUIpnl_directedMSGWin_dividerpositionDefault").item(0)
|
||||||
|
.getTextContent();
|
||||||
|
this.setGUIpnl_directedMSGWin_dividerpositionDefault(csvStringToDoubleArray(GUIpnl_directedMSGWin_dividerpositionDefault));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// System.out.println(
|
||||||
|
// "[ChatPreferences, info]: Set the GUIclusterAndQSOMonStage_SceneSizeHW size to " + GUIclusterAndQSOMonStage_SceneSizeHW);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
catch (NullPointerException tooOldConfigFileOrFormatError) {
|
||||||
|
/**
|
||||||
|
* In program version 1.2 there had not been these settings in the xml and not founding em
|
||||||
|
* would cause an exception and dumb values for the preferences. So we have to initialize
|
||||||
|
* these variables and later write a proper configfile which can be used correctly then.
|
||||||
|
*
|
||||||
|
* So THESE ARE DEFULTS
|
||||||
|
*/
|
||||||
|
|
||||||
|
tooOldConfigFileOrFormatError.printStackTrace();
|
||||||
|
GUIscn_ChatwindowMainSceneSizeHW = new double[] {768, 1234};
|
||||||
|
GUIclusterAndQSOMonStage_SceneSizeHW = new double[] {700, 500};
|
||||||
|
GUIstage_updateStage_SceneSizeHW = new double[] {640, 480};
|
||||||
|
GUIsettingsStageSceneSizeHW = new double[] {720, 768};
|
||||||
|
|
||||||
|
GUIselectedCallSignSplitPane_dividerposition = new double[]{0.9};
|
||||||
|
setGUImainWindowLeftSplitPane_dividerposition(new double[]{0.7});
|
||||||
|
GUImessageSectionSplitpane_dividerposition = new double[]{0.5};
|
||||||
|
GUImainWindowRightSplitPane_dividerposition = new double[]{0.8};
|
||||||
|
GUIpnl_directedMSGWin_dividerpositionDefault = new double[]{0.8};
|
||||||
|
// GUImainWindowLeftSplitPane_dividerposition
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} catch (ParserConfigurationException | SAXException | IOException e) {
|
} catch (ParserConfigurationException | SAXException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.out.println(e.getCause());
|
System.out.println(e.getCause());
|
||||||
@@ -1427,6 +1658,41 @@ public class ChatPreferences {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return double array with separated values for each doublevalue, seperated by ";", empty array if none
|
||||||
|
*/
|
||||||
|
private double [] csvStringToDoubleArray(String csvStringWithDoubles){
|
||||||
|
|
||||||
|
String separator = ";";
|
||||||
|
double[] result = new double[csvStringWithDoubles.split(separator).length];
|
||||||
|
|
||||||
|
for (int i = 0; i < (csvStringWithDoubles.split(separator).length); i++) {
|
||||||
|
result[i] =
|
||||||
|
Double.parseDouble(csvStringWithDoubles.split(separator)[i]);
|
||||||
|
// System.out.println("EXTRACTED " + result[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String doubleArrayToCSVString(double[] doubleArrayToCSVConvert){
|
||||||
|
|
||||||
|
String separator = ";";
|
||||||
|
String result = "";
|
||||||
|
|
||||||
|
for (int i = 0; i < (doubleArrayToCSVConvert.length); i++) {
|
||||||
|
result += doubleArrayToCSVConvert[i];
|
||||||
|
|
||||||
|
if (i+1<doubleArrayToCSVConvert.length) {
|
||||||
|
result += separator;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isStn_bandActive144() {
|
public boolean isStn_bandActive144() {
|
||||||
return stn_bandActive144;
|
return stn_bandActive144;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,10 @@ import java.io.IOException;
|
|||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.image.ImageView;
|
|
||||||
import javafx.scene.input.*;
|
import javafx.scene.input.*;
|
||||||
import javafx.scene.layout.*;
|
import javafx.scene.layout.*;
|
||||||
import javafx.scene.media.Media;
|
import javafx.scene.media.Media;
|
||||||
@@ -49,7 +47,6 @@ import kst4contest.model.*;
|
|||||||
|
|
||||||
import javafx.scene.shape.Line;
|
import javafx.scene.shape.Line;
|
||||||
import javafx.scene.shape.Polygon;
|
import javafx.scene.shape.Polygon;
|
||||||
import javafx.scene.Group;
|
|
||||||
|
|
||||||
|
|
||||||
public class Kst4ContestApplication extends Application {
|
public class Kst4ContestApplication extends Application {
|
||||||
@@ -103,13 +100,27 @@ public class Kst4ContestApplication extends Application {
|
|||||||
return new javafx.scene.Group(arrowLine, arrowhead);
|
return new javafx.scene.Group(arrowLine, arrowhead);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method generates a BoderPane which shows some additional information about a callsign which had been
|
||||||
|
* selected either: <br/>
|
||||||
|
* - at the userlist <br/>
|
||||||
|
* - at the CQ message list (senders callsign)<br/>
|
||||||
|
* - at the PM message list (senders callsign)<br/><br/>
|
||||||
|
* Method gets its information source out of the original chatmember object of the userlist, not a copy
|
||||||
|
*
|
||||||
|
* @param selectedCallSignInfoStageChatMember
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private BorderPane generateFurtherInfoAbtSelectedCallsignBP(ChatMember selectedCallSignInfoStageChatMember) {
|
private BorderPane generateFurtherInfoAbtSelectedCallsignBP(ChatMember selectedCallSignInfoStageChatMember) {
|
||||||
|
|
||||||
|
|
||||||
selectedCallSignInfoBorderPane = new BorderPane();
|
selectedCallSignInfoBorderPane = new BorderPane();
|
||||||
|
|
||||||
SplitPane selectedCallSignSplitPane = new SplitPane();
|
SplitPane selectedCallSignSplitPane = new SplitPane();
|
||||||
selectedCallSignSplitPane.setOrientation(Orientation.VERTICAL);
|
selectedCallSignSplitPane.setOrientation(Orientation.VERTICAL);
|
||||||
selectedCallSignSplitPane.setDividerPositions(0.9);
|
selectedCallSignSplitPane.setDividerPositions(chatcontroller.getChatPreferences().getGUIselectedCallSignSplitPane_dividerposition());
|
||||||
|
|
||||||
|
|
||||||
TableView<ChatMessage> initFurtherInfoAbtCallsignMSGTable = initFurtherInfoAbtCallsignMSGTable();
|
TableView<ChatMessage> initFurtherInfoAbtCallsignMSGTable = initFurtherInfoAbtCallsignMSGTable();
|
||||||
|
|
||||||
@@ -127,14 +138,9 @@ public class Kst4ContestApplication extends Application {
|
|||||||
selectedCallSignDownerSiteGridPane.add(new Label("Last activity: " + new Utils4KST().time_convertEpochToReadable(selectedCallSignInfoStageChatMember.getActivityTimeLastInEpoch()+"")), 0,2,1,1);
|
selectedCallSignDownerSiteGridPane.add(new Label("Last activity: " + new Utils4KST().time_convertEpochToReadable(selectedCallSignInfoStageChatMember.getActivityTimeLastInEpoch()+"")), 0,2,1,1);
|
||||||
selectedCallSignDownerSiteGridPane.add(new Label(("(" + Utils4KST.time_getSecondsBetweenEpochAndNow(selectedCallSignInfoStageChatMember.getActivityTimeLastInEpoch()+"") /60%60) +" min ago)"), 0,3,1,1);
|
selectedCallSignDownerSiteGridPane.add(new Label(("(" + Utils4KST.time_getSecondsBetweenEpochAndNow(selectedCallSignInfoStageChatMember.getActivityTimeLastInEpoch()+"") /60%60) +" min ago)"), 0,3,1,1);
|
||||||
|
|
||||||
// selectedCallSignDownerSiteGridPane.add(createArrow(selectedCallSignInfoStageChatMember.getQTFdirection()),1,2,2,2); //moved to as button
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* users qrv info setting will follow here
|
* users qrv info setting will follow here
|
||||||
*/
|
*/
|
||||||
// CheckBox chkbx_tagMemberNotQRVFurtherInfoPane = new CheckBox("tag NOT QRV ALL");
|
|
||||||
// chkbx_tagMemberNotQRVFurtherInfoPane.setSelected(selectedCallSignInfoStageChatMember.isQrvAny());
|
|
||||||
// chkbx_tagMemberNotQRVFurtherInfoPanefurtherInfoPnl_chkbx_notQRV144
|
|
||||||
|
|
||||||
CheckBox furtherInfoPnl_chkbx_notQRV144 = new CheckBox("tag not qrv 144");
|
CheckBox furtherInfoPnl_chkbx_notQRV144 = new CheckBox("tag not qrv 144");
|
||||||
furtherInfoPnl_chkbx_notQRV144.setSelected(!selectedCallSignInfoStageChatMember.isQrv144());
|
furtherInfoPnl_chkbx_notQRV144.setSelected(!selectedCallSignInfoStageChatMember.isQrv144());
|
||||||
@@ -149,6 +155,12 @@ public class Kst4ContestApplication extends Application {
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
chatcontroller.getDbHandler().updateNotQRVInfoOnChatMember(selectedCallSignInfoStageChatMember);
|
chatcontroller.getDbHandler().updateNotQRVInfoOnChatMember(selectedCallSignInfoStageChatMember);
|
||||||
|
|
||||||
|
// double[] deviderPos = selectedCallSignSplitPane.getDividerPositions();
|
||||||
|
// for (int i = 0; i<deviderPos.length;i++) {
|
||||||
|
// System.out.println("<<<<<<<<<<<<<<<DEVIDER " + deviderPos[i]);
|
||||||
|
// }
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//do nothing, upodate was not possible
|
//do nothing, upodate was not possible
|
||||||
}
|
}
|
||||||
@@ -369,6 +381,22 @@ public class Kst4ContestApplication extends Application {
|
|||||||
selectedCallSignSplitPane.getItems().add(initFurtherInfoAbtCallsignMSGTable);
|
selectedCallSignSplitPane.getItems().add(initFurtherInfoAbtCallsignMSGTable);
|
||||||
selectedCallSignSplitPane.getItems().add(selectedCallSignDownerSiteGridPane);
|
selectedCallSignSplitPane.getItems().add(selectedCallSignDownerSiteGridPane);
|
||||||
|
|
||||||
|
//first initialize how much divider positions we need...
|
||||||
|
// chatcontroller.getChatPreferences().setGUIselectedCallSignSplitPane_dividerposition(new double[selectedCallSignSplitPane.getDividers().size()]);
|
||||||
|
/**
|
||||||
|
* Then add change listeners to the dividers to save their state
|
||||||
|
*/
|
||||||
|
for (SplitPane.Divider divider : selectedCallSignSplitPane.getDividers()) {
|
||||||
|
divider.positionProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number oldDividerPos, Number newDividerPosition) {
|
||||||
|
// System.out.println("<<<<<<<<<<<<<<<<<<< devider " + selectedCallSignSplitPane.getDividers().indexOf(divider) + " position change, new position: " + newDividerPosition + " // size dev: " + selectedCallSignSplitPane.getDividers().size());
|
||||||
|
chatcontroller.getChatPreferences().getGUIselectedCallSignSplitPane_dividerposition()[selectedCallSignSplitPane.getDividers().indexOf(divider)] = newDividerPosition.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
selectedCallSignInfoBorderPane.setCenter(selectedCallSignSplitPane);
|
selectedCallSignInfoBorderPane.setCenter(selectedCallSignSplitPane);
|
||||||
|
|
||||||
@@ -822,7 +850,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
return wkd;
|
return wkd;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
wkdAny_subcol.prefWidthProperty().bind(tbl_chatMemberTable.widthProperty().divide(28));
|
wkdAny_subcol.prefWidthProperty().bind(tbl_chatMemberTable.widthProperty().divide(14));
|
||||||
|
|
||||||
TableColumn<ChatMember, String> vhfCol_subcol = new TableColumn<ChatMember, String>("144");
|
TableColumn<ChatMember, String> vhfCol_subcol = new TableColumn<ChatMember, String>("144");
|
||||||
vhfCol_subcol
|
vhfCol_subcol
|
||||||
@@ -1103,7 +1131,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
Thread.currentThread().setName("chatMemberTableSortTimer");
|
Thread.currentThread().setName("chatMemberTableSortTimer");
|
||||||
|
|
||||||
System.out.println("[KST4CApp, Info:] Chatmemberlist-Filterlist predicates size: " + chatcontroller.getLst_chatMemberListFilterPredicates().size());
|
System.out.println("[KST4CApp, Info:] Chatmemberlist-Filterlist predicates size: " + chatcontroller.getLst_chatMemberListFilterPredicates().size());
|
||||||
//
|
// System.out.println("[KST4CApp, Info:] Deviderpos: " + spl);
|
||||||
// for (int i = 0; i < chatcontroller.getLst_chatMemberListFilterPredicates().size(); i++) {
|
// for (int i = 0; i < chatcontroller.getLst_chatMemberListFilterPredicates().size(); i++) {
|
||||||
//
|
//
|
||||||
// Predicate test = chatcontroller.getLst_chatMemberListFilterPredicates().get(i);
|
// Predicate test = chatcontroller.getLst_chatMemberListFilterPredicates().get(i);
|
||||||
@@ -1216,8 +1244,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
* clickhandler for the contextmenu out of a string array (each menuitam will be
|
* clickhandler for the contextmenu out of a string array (each menuitam will be
|
||||||
* created out of exact one array-entry). These are initialized by the
|
* created out of exact one array-entry). These are initialized by the
|
||||||
* chatpreferences object out of the config-xml
|
* chatpreferences object out of the config-xml
|
||||||
*
|
*
|
||||||
* @param menuTexts
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private ContextMenu initChatMemberTableContextMenu(ObservableList<String> contextMenuEntries) { // new mechanic
|
private ContextMenu initChatMemberTableContextMenu(ObservableList<String> contextMenuEntries) { // new mechanic
|
||||||
@@ -2788,7 +2815,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
FlowPane flwPane_textSnippets;
|
FlowPane flwPane_textSnippets;
|
||||||
|
|
||||||
Stage clusterAndQSOMonStage;
|
Stage clusterAndQSOMonStage;
|
||||||
Stage stage_selectedCallSignInfoStage;
|
// Stage stage_selectedCallSignInfoStage;
|
||||||
ChatMember selectedCallSignInfoStageChatMember;
|
ChatMember selectedCallSignInfoStageChatMember;
|
||||||
BorderPane selectedCallSignInfoBorderPane;
|
BorderPane selectedCallSignInfoBorderPane;
|
||||||
|
|
||||||
@@ -2809,7 +2836,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
* For identification of the button in the dom and make it functional, the
|
* For identification of the button in the dom and make it functional, the
|
||||||
* init-value have to be "MYQRG"! </b>
|
* init-value have to be "MYQRG"! </b>
|
||||||
*
|
*
|
||||||
* @param buttonText
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Node[] buttonFactory(ObservableList<String> shortcuts) {
|
private Node[] buttonFactory(ObservableList<String> shortcuts) {
|
||||||
@@ -3283,9 +3310,24 @@ public class Kst4ContestApplication extends Application {
|
|||||||
|
|
||||||
BorderPane bPaneChatWindow = new BorderPane();
|
BorderPane bPaneChatWindow = new BorderPane();
|
||||||
|
|
||||||
Scene scene = new Scene(bPaneChatWindow, 1024, 768);
|
Scene scn_ChatwindowMainScene = new Scene(bPaneChatWindow, chatcontroller.getChatPreferences().getGUIscn_ChatwindowMainSceneSizeHW()[1], chatcontroller.getChatPreferences().getGUIscn_ChatwindowMainSceneSizeHW()[0]);
|
||||||
|
|
||||||
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
|
//add listeners for size changes to restore after startup
|
||||||
|
scn_ChatwindowMainScene.widthProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number number, Number newWidthValue) {
|
||||||
|
chatcontroller.getChatPreferences().getGUIscn_ChatwindowMainSceneSizeHW()[1] = newWidthValue.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
scn_ChatwindowMainScene.heightProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number number, Number newHeightValue) {
|
||||||
|
chatcontroller.getChatPreferences().getGUIscn_ChatwindowMainSceneSizeHW()[0] = newHeightValue.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
scn_ChatwindowMainScene.setOnKeyPressed(new EventHandler<KeyEvent>() {
|
||||||
KeyCombination keyComboSTRGplus1 = new KeyCodeCombination(KeyCode.DIGIT1, KeyCombination.CONTROL_DOWN);
|
KeyCombination keyComboSTRGplus1 = new KeyCodeCombination(KeyCode.DIGIT1, KeyCombination.CONTROL_DOWN);
|
||||||
KeyCombination keyComboSTRGplus2 = new KeyCodeCombination(KeyCode.DIGIT2, KeyCombination.CONTROL_DOWN);
|
KeyCombination keyComboSTRGplus2 = new KeyCodeCombination(KeyCode.DIGIT2, KeyCombination.CONTROL_DOWN);
|
||||||
KeyCombination keyComboSTRGplus3 = new KeyCodeCombination(KeyCode.DIGIT3, KeyCombination.CONTROL_DOWN);
|
KeyCombination keyComboSTRGplus3 = new KeyCodeCombination(KeyCode.DIGIT3, KeyCombination.CONTROL_DOWN);
|
||||||
@@ -3721,7 +3763,24 @@ public class Kst4ContestApplication extends Application {
|
|||||||
|
|
||||||
messageSectionSplitpane.getItems().addAll(privateMessageTable, flwPane_textSnippets, textInputFlowPane,
|
messageSectionSplitpane.getItems().addAll(privateMessageTable, flwPane_textSnippets, textInputFlowPane,
|
||||||
tbl_generalMessageTable);
|
tbl_generalMessageTable);
|
||||||
messageSectionSplitpane.setDividerPositions(0.9);
|
messageSectionSplitpane.setDividerPositions(chatcontroller.getChatPreferences().getGUImessageSectionSplitpane_dividerposition());
|
||||||
|
|
||||||
|
//first initialize how much divider positions we need...
|
||||||
|
// chatcontroller.getChatPreferences().setGUImessageSectionSplitpane_dividerposition(chatcontroller.getChatPreferences().getGUImessageSectionSplitpane_dividerposition());
|
||||||
|
/**
|
||||||
|
* Then add change listeners to the dividers to save their state
|
||||||
|
*/
|
||||||
|
for (SplitPane.Divider divider : messageSectionSplitpane.getDividers()) {
|
||||||
|
divider.positionProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number oldDividerPos, Number newDividerPosition) {
|
||||||
|
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<< devider>>>>>> " + messageSectionSplitpane.getDividers().indexOf(divider) + " position change, new position: " + newDividerPosition + " // size dev: " + messageSectionSplitpane.getDividers().size());
|
||||||
|
chatcontroller.getChatPreferences().getGUImessageSectionSplitpane_dividerposition()[messageSectionSplitpane.getDividers().indexOf(divider)] = newDividerPosition.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//Changed to add contextmenu to cq message table
|
//Changed to add contextmenu to cq message table
|
||||||
// messageSectionSplitpane.getItems().addAll(privateMessageTable, flwPane_textSnippets, textInputFlowPane,
|
// messageSectionSplitpane.getItems().addAll(privateMessageTable, flwPane_textSnippets, textInputFlowPane,
|
||||||
// initChatGeneralMSGTable());
|
// initChatGeneralMSGTable());
|
||||||
@@ -3798,7 +3857,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
|
|
||||||
SplitPane mainWindowRightSplitPane = new SplitPane();
|
SplitPane mainWindowRightSplitPane = new SplitPane();
|
||||||
mainWindowRightSplitPane.setOrientation(Orientation.VERTICAL);
|
mainWindowRightSplitPane.setOrientation(Orientation.VERTICAL);
|
||||||
mainWindowRightSplitPane.setDividerPositions(0.8);
|
mainWindowRightSplitPane.setDividerPositions(chatcontroller.getChatPreferences().getGUImainWindowRightSplitPane_dividerposition());
|
||||||
|
|
||||||
BorderPane chatMemberTableBorderPane = new BorderPane();
|
BorderPane chatMemberTableBorderPane = new BorderPane();
|
||||||
chatMemberTableBorderPane.setCenter(tbl_chatMember);
|
chatMemberTableBorderPane.setCenter(tbl_chatMember);
|
||||||
@@ -3817,8 +3876,11 @@ public class Kst4ContestApplication extends Application {
|
|||||||
"-fx-border-radius: 1;" +
|
"-fx-border-radius: 1;" +
|
||||||
"-fx-border-color: lightgreen;");
|
"-fx-border-color: lightgreen;");
|
||||||
|
|
||||||
HBox chatMemberTableFilterQRBHBox = new HBox();
|
// HBox chatMemberTableFilterQRBHBox = new HBox();
|
||||||
|
FlowPane chatMemberTableFilterQRBHBox = new FlowPane();
|
||||||
chatMemberTableFilterQRBHBox.setAlignment(Pos.CENTER_LEFT);
|
chatMemberTableFilterQRBHBox.setAlignment(Pos.CENTER_LEFT);
|
||||||
|
chatMemberTableFilterQRBHBox.setHgap(2);
|
||||||
|
chatMemberTableFilterQRBHBox.setPrefWidth(210);
|
||||||
|
|
||||||
TextField chatMemberTableFilterMaxQrbTF = new TextField(chatcontroller.getChatPreferences().getStn_maxQRBDefault() + "");
|
TextField chatMemberTableFilterMaxQrbTF = new TextField(chatcontroller.getChatPreferences().getStn_maxQRBDefault() + "");
|
||||||
ToggleButton tglBtnQRBEnable = new ToggleButton("Show only QRB [km] <= ");
|
ToggleButton tglBtnQRBEnable = new ToggleButton("Show only QRB [km] <= ");
|
||||||
@@ -3863,8 +3925,11 @@ public class Kst4ContestApplication extends Application {
|
|||||||
chatMemberTableFilterQTFAndQRBHbox.getChildren().add(chatMemberTableFilterQRBHBox);
|
chatMemberTableFilterQTFAndQRBHbox.getChildren().add(chatMemberTableFilterQRBHBox);
|
||||||
|
|
||||||
|
|
||||||
HBox chatMemberTableFilterQTFHBox = new HBox();
|
// HBox chatMemberTableFilterQTFHBox = new HBox();
|
||||||
|
FlowPane chatMemberTableFilterQTFHBox = new FlowPane();
|
||||||
chatMemberTableFilterQTFHBox.setAlignment(Pos.CENTER_LEFT);
|
chatMemberTableFilterQTFHBox.setAlignment(Pos.CENTER_LEFT);
|
||||||
|
chatMemberTableFilterQTFHBox.setPrefWidth(490);
|
||||||
|
chatMemberTableFilterQTFHBox.setHgap(2);
|
||||||
|
|
||||||
CheckBox chatMemberTableFilterQtfEnableChkbx = new CheckBox("Show only QTF:");
|
CheckBox chatMemberTableFilterQtfEnableChkbx = new CheckBox("Show only QTF:");
|
||||||
TextField chatMemberTableFilterQtfTF = new TextField(chatcontroller.getChatPreferences().getStn_qtfDefault()+"");
|
TextField chatMemberTableFilterQtfTF = new TextField(chatcontroller.getChatPreferences().getStn_qtfDefault()+"");
|
||||||
@@ -3977,8 +4042,8 @@ public class Kst4ContestApplication extends Application {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
chatMemberTableFilterQTFHBox.setSpacing(5);
|
// chatMemberTableFilterQTFHBox.setSpacing(5);
|
||||||
chatMemberTableFilterQTFHBox.getChildren().addAll(chatMemberTableFilterQtfTF, new Label("deg, " + chatcontroller.getChatPreferences().getStn_antennaBeamWidthDeg() + " beamwidth"), qtfNorth, qtfNorthEast, qtfEast, qtfSouthEast, qtfSouth, qtfSouthWest, qtfWest, qtfNorthWest);
|
chatMemberTableFilterQTFHBox.getChildren().addAll(chatMemberTableFilterQtfTF, new Label("deg +/- " + chatcontroller.getChatPreferences().getStn_antennaBeamWidthDeg() + ""), qtfNorth, qtfNorthEast, qtfEast, qtfSouthEast, qtfSouth, qtfSouthWest, qtfWest, qtfNorthWest);
|
||||||
chatMemberTableFilterQTFAndQRBHbox.getChildren().add(chatMemberTableFilterQTFHBox);
|
chatMemberTableFilterQTFAndQRBHbox.getChildren().add(chatMemberTableFilterQTFHBox);
|
||||||
|
|
||||||
chatMemberTableFilterVBoxForAllFilters.getChildren().add(chatMemberTableFilterQTFAndQRBHbox);
|
chatMemberTableFilterVBoxForAllFilters.getChildren().add(chatMemberTableFilterQTFAndQRBHbox);
|
||||||
@@ -4316,9 +4381,11 @@ public class Kst4ContestApplication extends Application {
|
|||||||
|
|
||||||
chatMemberTableFilterTextFieldBox.getChildren().addAll(chatMemberTableFilterTextField);
|
chatMemberTableFilterTextFieldBox.getChildren().addAll(chatMemberTableFilterTextField);
|
||||||
|
|
||||||
HBox chatMemberTableFilterTextFieldAndWorkedBandsHbx = new HBox();
|
// HBox chatMemberTableFilterTextFieldAndWorkedBandsHbx = new HBox();
|
||||||
|
FlowPane chatMemberTableFilterTextFieldAndWorkedBandsHbx = new FlowPane();
|
||||||
chatMemberTableFilterTextFieldAndWorkedBandsHbx.getChildren().addAll(chatMemberTableFilterTextFieldBox, chatMemberTableFilterWorkedBandFiltersHbx);
|
chatMemberTableFilterTextFieldAndWorkedBandsHbx.getChildren().addAll(chatMemberTableFilterTextFieldBox, chatMemberTableFilterWorkedBandFiltersHbx);
|
||||||
chatMemberTableFilterTextFieldAndWorkedBandsHbx.setSpacing(5);
|
// chatMemberTableFilterTextFieldAndWorkedBandsHbx.setSpacing(5);
|
||||||
|
chatMemberTableFilterTextFieldAndWorkedBandsHbx.setHgap(2);
|
||||||
|
|
||||||
chatMemberTableFilterVBoxForAllFilters.getChildren().add(chatMemberTableFilterTextFieldAndWorkedBandsHbx);
|
chatMemberTableFilterVBoxForAllFilters.getChildren().add(chatMemberTableFilterTextFieldAndWorkedBandsHbx);
|
||||||
|
|
||||||
@@ -4335,7 +4402,24 @@ public class Kst4ContestApplication extends Application {
|
|||||||
|
|
||||||
|
|
||||||
mainWindowLeftSplitPane.getItems().addAll(messageSectionSplitpane, mainWindowRightSplitPane);
|
mainWindowLeftSplitPane.getItems().addAll(messageSectionSplitpane, mainWindowRightSplitPane);
|
||||||
mainWindowLeftSplitPane.setDividerPositions(0.8);
|
mainWindowLeftSplitPane.setDividerPositions(chatcontroller.getChatPreferences().getGUImainWindowLeftSplitPane_dividerposition());
|
||||||
|
|
||||||
|
//first initialize how much divider positions we need...
|
||||||
|
// chatcontroller.getChatPreferences().setGUImainWindowLeftSplitPane_dividerposition(new double[mainWindowLeftSplitPane.getDividers().size()]);
|
||||||
|
// chatcontroller.getChatPreferences().getGUImainWindowLeftSplitPane_dividerposition()[0] = 0.2;
|
||||||
|
/**
|
||||||
|
* here will follow the Splitpane divider listener to save the user made UI changes, should been made at the very end of all splitpane operations
|
||||||
|
*/
|
||||||
|
for (SplitPane.Divider divider : mainWindowLeftSplitPane.getDividers()) {
|
||||||
|
divider.positionProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number oldDividerPos, Number newDividerPosition) {
|
||||||
|
System.out.println("<<<<<<<<<<<<<<<<<<< mainWindowLeftSplitPanedevider " + mainWindowLeftSplitPane.getDividers().indexOf(divider) + " position change, new position: " + newDividerPosition + " // size dev: " + mainWindowLeftSplitPane.getDividers().size());
|
||||||
|
chatcontroller.getChatPreferences().getGUImainWindowLeftSplitPane_dividerposition()[mainWindowLeftSplitPane.getDividers().indexOf(divider)] = newDividerPosition.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initializing the furter infos of a callsign part of the right splitpane
|
* initializing the furter infos of a callsign part of the right splitpane
|
||||||
@@ -4359,7 +4443,25 @@ public class Kst4ContestApplication extends Application {
|
|||||||
|
|
||||||
mainWindowRightSplitPane.getItems().add(selectedCallSignFurtherInfoPane);
|
mainWindowRightSplitPane.getItems().add(selectedCallSignFurtherInfoPane);
|
||||||
|
|
||||||
primaryStage.setScene(scene);
|
//first initialize how much divider positions we need...
|
||||||
|
// chatcontroller.getChatPreferences().setGUImainWindowRightSplitPane_dividerposition(new double[mainWindowRightSplitPane.getDividers().size()]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* here will follow the Splitpane divider listener to save the user made UI changes, should been made at the very end of all splitpane operations
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (SplitPane.Divider divider : mainWindowRightSplitPane.getDividers()) {
|
||||||
|
divider.positionProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number oldDividerPos, Number newDividerPosition) {
|
||||||
|
System.out.println("<<<<<<<<<<<<<<<<<<<>>>>>> devider mainwindowRIGHTsplitpane " + mainWindowRightSplitPane.getDividers().indexOf(divider) + " position change, new position: " + newDividerPosition + " // size dev: " + mainWindowRightSplitPane.getDividers().size());
|
||||||
|
chatcontroller.getChatPreferences().getGUImainWindowRightSplitPane_dividerposition()[mainWindowRightSplitPane.getDividers().indexOf(divider)] = newDividerPosition.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
primaryStage.setScene(scn_ChatwindowMainScene);
|
||||||
|
|
||||||
primaryStage.show();
|
primaryStage.show();
|
||||||
|
|
||||||
@@ -4373,12 +4475,6 @@ public class Kst4ContestApplication extends Application {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
stage_selectedCallSignInfoStage = new Stage();
|
|
||||||
// stage_selectedCallSignInfoStage.hide();
|
|
||||||
//
|
|
||||||
// stage_selectedCallSignInfoStage.setScene(new Scene(new Label("Further info on selected Callsign"), 500, 400));
|
|
||||||
// stage_selectedCallSignInfoStage.setAlwaysOnTop(true);
|
|
||||||
// stage_selectedCallSignInfoStage.show();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* end Window selected callsign information
|
* end Window selected callsign information
|
||||||
@@ -4392,10 +4488,49 @@ public class Kst4ContestApplication extends Application {
|
|||||||
clusterAndQSOMonStage.setTitle("Cluster & QSO of the other");
|
clusterAndQSOMonStage.setTitle("Cluster & QSO of the other");
|
||||||
SplitPane pnl_directedMSGWin = new SplitPane();
|
SplitPane pnl_directedMSGWin = new SplitPane();
|
||||||
pnl_directedMSGWin.setOrientation(Orientation.VERTICAL);
|
pnl_directedMSGWin.setOrientation(Orientation.VERTICAL);
|
||||||
|
pnl_directedMSGWin.setDividerPositions(chatcontroller.getChatPreferences().getGUIpnl_directedMSGWin_dividerpositionDefault());
|
||||||
pnl_directedMSGWin.getItems().addAll(initDXClusterTable(), initChatToOtherMSGTable());
|
pnl_directedMSGWin.getItems().addAll(initDXClusterTable(), initChatToOtherMSGTable());
|
||||||
|
|
||||||
clusterAndQSOMonStage.setScene(new Scene(pnl_directedMSGWin, 700, 500));
|
|
||||||
|
|
||||||
|
//first initialize how much divider positions we need...
|
||||||
|
// chatcontroller.getChatPreferences().setGUIpnl_directedMSGWin_dividerpositionDefault(new double[pnl_directedMSGWin.getDividers().size()]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* here will follow the Splitpane divider listener to save the user made UI changes, should been made at the very end of all splitpane operations
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (SplitPane.Divider divider : pnl_directedMSGWin.getDividers()) {
|
||||||
|
divider.positionProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number oldDividerPos, Number newDividerPosition) {
|
||||||
|
System.out.println("<<<<<<<<<<<<<<<<<<<|||||||||||||||||||| devider " + pnl_directedMSGWin.getDividers().indexOf(divider) + " position change, new position: " + newDividerPosition + " // size dev: " + pnl_directedMSGWin.getDividers().size());
|
||||||
|
chatcontroller.getChatPreferences().getGUIpnl_directedMSGWin_dividerpositionDefault()[pnl_directedMSGWin.getDividers().indexOf(divider)] = newDividerPosition.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Scene clusterAndQSOMonScene = new Scene(pnl_directedMSGWin, chatcontroller.getChatPreferences().getGUIclusterAndQSOMonStage_SceneSizeHW()[0], chatcontroller.getChatPreferences().getGUIclusterAndQSOMonStage_SceneSizeHW()[1]);
|
||||||
|
|
||||||
|
clusterAndQSOMonScene.heightProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number number, Number newHeightValue) {
|
||||||
|
chatcontroller.getChatPreferences().getGUIclusterAndQSOMonStage_SceneSizeHW()[1] = newHeightValue.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
clusterAndQSOMonScene.widthProperty().addListener(new ChangeListener<Number>() {
|
||||||
|
@Override
|
||||||
|
public void changed(ObservableValue<? extends Number> observableValue, Number number, Number newWidthValue) {
|
||||||
|
chatcontroller.getChatPreferences().getGUIclusterAndQSOMonStage_SceneSizeHW()[0] = newWidthValue.doubleValue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
clusterAndQSOMonStage.setScene(clusterAndQSOMonScene);
|
||||||
|
|
||||||
|
|
||||||
clusterAndQSOMonStage.show();
|
clusterAndQSOMonStage.show();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4506,7 +4641,9 @@ public class Kst4ContestApplication extends Application {
|
|||||||
treeView.setRoot(rootItem);
|
treeView.setRoot(rootItem);
|
||||||
treeView.setShowRoot(false);
|
treeView.setShowRoot(false);
|
||||||
|
|
||||||
stage_updateStage.setScene(new Scene(vbxUpdateWindow, 640, 480));
|
System.out.println("SRVR Version: " + chatcontroller.getUpdateInformation().getLatestVersionNumberOnServer() + " // installed versioasdn " + ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER);
|
||||||
|
|
||||||
|
stage_updateStage.setScene(new Scene(vbxUpdateWindow, chatcontroller.getChatPreferences().getGUIstage_updateStage_SceneSizeHW()[0], chatcontroller.getChatPreferences().getGUIstage_updateStage_SceneSizeHW()[1]));
|
||||||
|
|
||||||
if (chatcontroller.getUpdateInformation().getLatestVersionNumberOnServer() > ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER) {
|
if (chatcontroller.getUpdateInformation().getLatestVersionNumberOnServer() > ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER) {
|
||||||
stage_updateStage.show();
|
stage_updateStage.show();
|
||||||
@@ -4637,7 +4774,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
// labeledSeparator.setAlignment(Pos.CENTER);
|
// labeledSeparator.setAlignment(Pos.CENTER);
|
||||||
|
|
||||||
TextField txtFldstn_antennaBeamWidthDeg = new TextField(this.chatcontroller.getChatPreferences().getStn_antennaBeamWidthDeg() + "");
|
TextField txtFldstn_antennaBeamWidthDeg = new TextField(this.chatcontroller.getChatPreferences().getStn_antennaBeamWidthDeg() + "");
|
||||||
|
txtFldstn_antennaBeamWidthDeg.setTooltip(new Tooltip("Your antenna beamwidth in DEG\n\nEnter correct values here due it´s used for path suggestions!!!"));
|
||||||
txtFldstn_antennaBeamWidthDeg.textProperty().addListener(new ChangeListener<String>() {
|
txtFldstn_antennaBeamWidthDeg.textProperty().addListener(new ChangeListener<String>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -5512,8 +5649,6 @@ public class Kst4ContestApplication extends Application {
|
|||||||
// a.setContentText(chatcontroller.getChatPreferences().getProgramVersion());
|
// a.setContentText(chatcontroller.getChatPreferences().getProgramVersion());
|
||||||
a.show();
|
a.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// System.out.println("DB reset via DBHandler needs to be implemented");
|
// System.out.println("DB reset via DBHandler needs to be implemented");
|
||||||
}
|
}
|
||||||
@@ -5722,7 +5857,7 @@ public class Kst4ContestApplication extends Application {
|
|||||||
// optionsPanel.setAlignment(vbxButtons, Pos.CENTER);;
|
// optionsPanel.setAlignment(vbxButtons, Pos.CENTER);;
|
||||||
|
|
||||||
// VBox vBox = new VBox(tabPaneOptions);
|
// VBox vBox = new VBox(tabPaneOptions);
|
||||||
settingsStage.setScene(new Scene(optionsPanel, 720, 768));
|
settingsStage.setScene(new Scene(optionsPanel, chatcontroller.getChatPreferences().getGUIsettingsStageSceneSizeHW()[0], chatcontroller.getChatPreferences().getGUIsettingsStageSceneSizeHW()[1]));
|
||||||
|
|
||||||
// settingsStage.getScene().getWindow().addEventFilter(WindowEvent.WINDOW_CLOSE_REQUEST, this::closeWindowEvent);
|
// settingsStage.getScene().getWindow().addEventFilter(WindowEvent.WINDOW_CLOSE_REQUEST, this::closeWindowEvent);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user