Skip to content

Commit

Permalink
Merge pull request #80 from cdk/more-h-options
Browse files Browse the repository at this point in the history
More hydrogen options
  • Loading branch information
johnmay authored Jan 23, 2024
2 parents 008bea5 + d1dbad0 commit bed0ac2
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -249,21 +249,7 @@ private HydrogenDisplayType getHydrogenDisplay(Map<String, String> params) {
if (!getBoolean(Param.SUPRESSH, params)) {
return HydrogenDisplayType.Provided;
} else {
switch (getString(Param.HDISPLAY, params)) {
case "suppressed":
return HydrogenDisplayType.Minimal;
case "provided":
return HydrogenDisplayType.Provided;
case "stereo":
return HydrogenDisplayType.Stereo;
case "bridgeheadtetrahedral":
case "bridgehead":
case "default":
case "smart":
return HydrogenDisplayType.Smart;
default:
return HydrogenDisplayType.Smart;
}
return HydrogenDisplayType.parse(getString(Param.HDISPLAY, params));
}
}

Expand Down Expand Up @@ -694,6 +680,9 @@ private void setHydrogenDisplay(IAtomContainer mol, HydrogenDisplayType hDisplay
case Minimal:
AtomContainerManipulator.suppressHydrogens(mol);
break;
case Explicit:
AtomContainerManipulator.convertImplicitToExplicitHydrogens(mol);
break;
case Stereo: {
AtomContainerManipulator.suppressHydrogens(mol);
List<IStereoElement> ses = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,37 @@

package org.openscience.cdk.app;

import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

enum HydrogenDisplayType {
Provided,
Minimal,
Stereo,
Smart;
Provided('P'),
Minimal('M'),
Stereo('C'),
Smart('S'),
Explicit('X');

private final char ch;
private static Map<String, HydrogenDisplayType> map = new HashMap<>();

static {
for (HydrogenDisplayType hdisp : values()) {
map.put(hdisp.name(), hdisp);
map.put(hdisp.name().toLowerCase(Locale.ROOT), hdisp);
map.put(Character.toString(hdisp.ch), hdisp);
}
map.put("suppressed", HydrogenDisplayType.Minimal);
map.put("bridgeheadtetrahedral", HydrogenDisplayType.Smart);
map.put("bridgehead", HydrogenDisplayType.Smart);
map.put("default", HydrogenDisplayType.Smart);
}

HydrogenDisplayType(char ch) {
this.ch = ch;
}

static HydrogenDisplayType parse(String key) {
return map.getOrDefault(key, HydrogenDisplayType.Smart);
}
}
11 changes: 6 additions & 5 deletions cdkdepict-webapp/src/main/webapp/WEB-INF/static/depict.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,12 @@
<option value="atomvalue">Atom Value</option>
<option value="cip">CIP Stereo Label</option>
</select>
<select name="hdisp" onchange="update()">
<option value="minimal">Minimal Hydrogens</option>
<option value="stereo">Chiral Hydrogens</option>
<option value="bridgehead" selected>Chiral Hydrogens (smart)</option>
<option value="provided">Default Hydrogens</option>
<select id="hdisp" name="hdisp" onchange="update()">
<option value="M">Minimal Hydrogens</option>
<option value="P">Input Hydrogens</option>
<option value="S" selected>Smart Hydrogens</option>
<option value="C">Chiral Hydrogens</option>
<option value="X">Explicit Hydrogens</option>
</select>
<select name="abbr" onchange="update()">
<option value="on" selected>Abbreviate Reagents and Groups</option>
Expand Down

0 comments on commit bed0ac2

Please sign in to comment.