private void restoreFromPreferences() { String compiledTextHoverModifiers = fStore.getString(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIERS); StringTokenizer tokenizer = new StringTokenizer(compiledTextHoverModifiers, EditorTextHoverDescriptor.VALUE_SEPARATOR); HashMap idToModifier = new HashMap(tokenizer.countTokens() / 2); while (tokenizer.hasMoreTokens()) { String id = tokenizer.nextToken(); if (tokenizer.hasMoreTokens()) idToModifier.put(id, tokenizer.nextToken()); } String compiledTextHoverModifierMasks = DLTKUIPlugin.getDefault() .getPreferenceStore() .getString(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIER_MASKS); tokenizer = new StringTokenizer( compiledTextHoverModifierMasks, EditorTextHoverDescriptor.VALUE_SEPARATOR); HashMap idToModifierMask = new HashMap(tokenizer.countTokens() / 2); while (tokenizer.hasMoreTokens()) { String id = tokenizer.nextToken(); if (tokenizer.hasMoreTokens()) idToModifierMask.put(id, tokenizer.nextToken()); } for (int i = 0; i < fHoverConfigs.length; i++) { String modifierString = (String) idToModifier.get(getContributedHovers()[i].getId()); boolean enabled = true; if (modifierString == null) modifierString = EditorTextHoverDescriptor.DISABLED_TAG; if (modifierString.startsWith(EditorTextHoverDescriptor.DISABLED_TAG)) { enabled = false; modifierString = modifierString.substring(1); } if (modifierString.equals(EditorTextHoverDescriptor.NO_MODIFIER)) modifierString = ""; // $NON-NLS-1$ fHoverConfigs[i].fModifierString = modifierString; fHoverConfigs[i].fIsEnabled = enabled; fHoverConfigs[i].fStateMask = EditorTextHoverDescriptor.computeStateMask(modifierString); if (fHoverConfigs[i].fStateMask == -1) { try { fHoverConfigs[i].fStateMask = Integer.parseInt((String) idToModifierMask.get(getContributedHovers()[i].getId())); } catch (NumberFormatException ex) { fHoverConfigs[i].fStateMask = -1; } } } }
private void handleModifierModified() { int i = fHoverTable.getSelectionIndex(); if (i == -1) return; String modifiers = fModifierEditor.getText(); fHoverConfigs[i].fModifierString = modifiers; fHoverConfigs[i].fStateMask = EditorTextHoverDescriptor.computeStateMask(modifiers); // update table fHoverTableViewer.refresh(getContributedHovers()[i]); updateStatus(fHoverConfigs[i]); }