Skip to content
Snippets Groups Projects
Commit 77616081 authored by ics's avatar ics
Browse files

By default, if remote client doesn't have any spy, load spies from main

client.
parent ec91ab5e
No related branches found
Tags 4.3.3
No related merge requests found
......@@ -5,6 +5,7 @@
* Add a new PWidget: PSelector
* For each atomic command box, add a shortcut to its settings plugin.
* Add attribute "synchro" for PropertyCombo: combo content is reloaded each time user clicks on it.
* By default, if remote client doesn't have any spy, load spies from main client.
4.0.64 17/09/2020
------
......
......@@ -29,12 +29,15 @@ import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import fr.ill.ics.bridge.ResourceManager;
import fr.ill.ics.client.control.MainWindow;
import fr.ill.ics.client.control.parser.SpyParser;
import fr.ill.ics.client.control.plugin.selection.SelectionTreeData;
import fr.ill.ics.client.view.MainWindowPeer;
import fr.ill.ics.client.view.spy.SpyManagerPeer;
import fr.ill.ics.client.view.util.dialog.DialogManager;
import fr.ill.ics.common.Nomad;
import fr.ill.ics.nscclient.servant.ResourceNotFoundException;
import fr.ill.ics.util.ConfigManager;
/**
......@@ -69,7 +72,7 @@ public class SpyManager {
private UncloseableSpyHolder uncloseableSpyHolder;
private SpyHolder selectedSpyHolder;
private File userSpiesDir;
public static SpyManager getInstance() {
......@@ -91,34 +94,53 @@ public class SpyManager {
if (!userSpiesDir.exists()) {
userSpiesDir.mkdir();
}
// Create a handler to handle the SAX events generated during parsing
SpyParser parser = new SpyParser();
spyHolders = new ArrayList<SpyHolder>();
// Get user spies file
File spiesFile = getUserSpiesFile();
if (spiesFile != null) {
// Create a handler to handle the SAX events generated during parsing
SpyParser parser = new SpyParser();
// Parse the file using the handler
parser.parseXmlFile(spiesFile.getPath());
// Open each SpyHolder
if ((parser.getSpyHolders() != null) && (!parser.getSpyHolders().isEmpty())) {
Iterator<SpyHolder> itHolders = parser.getSpyHolders().iterator();
SpyHolder spyHolder = null;
while (itHolders.hasNext()) {
spyHolder = itHolders.next();
spyHolder.refresh();
}
initSpiesFromParser(parser);
} else if (ConfigManager.getInstance().isRemoteClient()) {
// Get main's spies file if none for remote
try {
String content = ResourceManager.getInstance().getFileContent(ConfigManager.getInstance().getString("usersSpiesDir") + ConfigManager.FILE_SEPARATOR + USERS_SPIES_FILENAME);
// Parse the file using the handler
parser.parseXmlString(content);
initSpiesFromParser(parser);
} catch (ResourceNotFoundException e) {
// Not really a problem, main client does not have any spy, that's all
}
}
createTheUncloseableSpyHolder();
}
private void initSpiesFromParser(SpyParser parser) {
// Open each SpyHolder
if ((parser.getSpyHolders() != null) && (!parser.getSpyHolders().isEmpty())) {
Iterator<SpyHolder> itHolders = parser.getSpyHolders().iterator();
SpyHolder spyHolder = null;
while (itHolders.hasNext()) {
spyHolder = itHolders.next();
spyHolder.refresh();
}
}
}
/**
* Returns the File instance containing user spies if it exists, null otherwise.
*
......@@ -266,7 +288,7 @@ public class SpyManager {
}
}
}
/**
* Refreshes all spy holders.
*/
......@@ -348,10 +370,10 @@ public class SpyManager {
public void noMoreConditions() {
uncloseableSpyHolder.noMoreConditions();
}
public void refreshUncloseableSpyHolder() {
uncloseableSpyHolder.refresh();
}
}
......@@ -102,8 +102,6 @@ public class TokenManager implements TokenEventListener {
@Override
public void onTokenChangeEvent(TokenEvent event) {
String owner = null;
log("1. EVENT " + event.getState() + " " + event.getOwnerClientID() + " user " + event.getUser() + " at " + event.getOwnerEndpoint() + " REMOTE CONTROL " + event.getRemoteControlState());
String chatMessage = "";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment