Post

2 followers Follow
0
Avatar

Apple versus Windows behaviour

I developed a plugin that among other things uses the options feature. It works without problems in Windows but one of my users that is using it on a Mac laptop seems not to get the Option window at all but the code based on the options still seems to execute.

Is there anything that would hide or stop the Options pop-up in Mac versus Windows?

 

Here's the code:

public DirectedEvolutionOperationOptions(AnnotatedPluginDocument... documents) {
if (useOptions) {
addDivider("General options");
generateOligosOption = addBooleanOption("generateOligos", "Generate Oligos", generateOligos);
generateGapBasedOligosOption = addBooleanOption("generateGapBasedOligos", "Generate Gap Based Oligos", generateGapBasedOligos);
addDivider("Oligo Generation Options");
approximateOligoSizeOption = addIntegerOption("approximateOligoSize", "Approximate Oligonucleotide size without the overlapped sequences", approximateOligoSize);
minOverlapOption = addIntegerOption("minOverlap", "Minimal Oligonucleotide Overlap", minOverlap);
compactSequencesOption = addBooleanOption("compactSequences", "Compact Sequences", compactSequences);
backwardsAndForwardsOption = addBooleanOption("backwardsAndForwards", "Look for cut places Backward of Oligo size first and then Forward", backwardsAndForwards);
minOligoSizeOption = addIntegerOption("minOligoSize", "Minimal Oligo size (without the overlap) ", minOligoSize);
addDivider("Visual Layout options");
doubleOptimizedConsensusOption = addBooleanOption("doubleOptimizedConsensus", "Repeat the display of Optimized Consensus at the end", doubleOptimizedConsensus);
///
addDivider("Sequence Optimization Options");
AtomicInteger sequenceIndex = new AtomicInteger(0);
List<Options.OptionValue> optionValues = ((DefaultAlignmentDocument) documents[0].getDocumentOrCrash()).<SequenceDocument>getSequences().stream().map(sequence ->
new Options.OptionValue("" + sequenceIndex.getAndIncrement(), sequence.getName())).collect(Collectors.toList());
optionValues.add(0, new Options.OptionValue(ignoredSequence.toString(), " "));
ignoredSequenceOption = addComboBoxOption("sequenceIgnoredDuringOptimization", "Sequence that should be ignored as input into calculation of optimized codons", optionValues, optionValues.get(0));
getOption("sequenceIgnoredDuringOptimization").getComponent().setToolTipText("TTG, CTC, CTG, CTG, CTT, TTG, CTG, TTG\n that normally produce TTG, TTG, TTG, TTG, CTT, TTG, TTG, TTG\n" +
" will produce TTG, TTG, TTG, TTG, CTT, TTG, TTG, TTG\n" +
" if last value is marked as ignored in calculation");
///////////
addDivider("File name Generation options");
useOriginalNameAsPefixOption = addBooleanOption("useOriginalNameAsPefix", "Use Original Filename As Prefix", useOriginalNameAsPefix);
fileNameSuffixOption = addStringOption("fileNameSuffix", "File Name Suffix", fileNameSuffix);
} else {
generateOligosOption = null;
generateGapBasedOligosOption = null;
approximateOligoSizeOption = null;
minOverlapOption = null;
compactSequencesOption = null;
backwardsAndForwardsOption = null;
minOligoSizeOption = null;
doubleOptimizedConsensusOption = null;
useOriginalNameAsPefixOption = null;
fileNameSuffixOption = null;
ignoredSequenceOption = null;
}
}
normally I would be concerned about the ComboBox since it's heavier but the same code has absolutely no issues on Windoze so it's probably a system specific issue.

I'm using the Options from:
public class XXXOperation extends DocumentOperation {

@Override
public Options getOptions(AnnotatedPluginDocument... documents) {//called by the framework and passed into perform operation
return new DirectedEvolutionOperationOptions(documents);
}

Thank you,
Adrian


Adrian

Please sign in to leave a comment.

4 comments

0
Avatar

I'm not aware of anything that would cause this. Perhaps that useOptions field is false for some reason when they run it?

If you haven't seen it happen with your own eyes, see if they can show, sometimes it's because they are doing something you didn't expect. Otherwise you may need to add some logging.

Richard Moir 0 votes
Comment actions Permalink
0
Avatar

Thank you Richard.

 

I have final boolean useOptions = true so it could not be the reason. I use that for JUnit purposes anyway.

I also increased the version on the plugin and had the client confirming that they see the new version in the plugin list. 

 

So I guess I'll try to do the logging.

I see the logging section under https://assets.geneious.com/developer/geneious/javadoc/latest/index.html

Is there any default logging.properties logging for MacOS or it has to be created from scratch by the user?

Cheers

Adrian

Adrian 0 votes
Comment actions Permalink
0
Avatar

Geneious uses the default Java properties. You can simply copy these and modify as necessary. On macOS that's in:

/Applications/Geneious.app/Contents/PlugIns/jre1.8.0_112.jre/Contents/Home/jre/lib/logging.properties

or similar

Richard Moir 0 votes
Comment actions Permalink
0
Avatar

Great.That makes sense.

We managed to figure it out. There was a conflict in menu names and/or shortcut assignments due to an existing plugin.

It seems that the old plugin was winning despite the fact that the new plugin installation did not complain about anything and the version matched.

 

 

Cheers,

Adrian

 

Adrian 0 votes
Comment actions Permalink