/** * Test that element format can be persisted in memento and viewer can restore to the persisted * settings. */ public void testPersistElementFormat() { recreateViewModel(); String preferenceFormat = IFormattedValues.HEX_FORMAT; setInput(IFormattedValues.NATURAL_FORMAT); setFormatAndValidate(preferenceFormat, false, false, false); // set each element to a format, and verify HashMap<String, ElementFormatSetting> map = new HashMap<String, ElementFormatSetting>(); String[] format = { IFormattedValues.HEX_FORMAT, IFormattedValues.DECIMAL_FORMAT, IFormattedValues.OCTAL_FORMAT, IFormattedValues.BINARY_FORMAT, IFormattedValues.NATURAL_FORMAT }; makeElementFormatSetting(fViewer, TreePath.EMPTY, format, -1, 0, map); ArrayList<ElementFormatSetting> elementFormats = new ArrayList<ElementFormatSetting>(map.values()); setFormatAndValidate(preferenceFormat, elementFormats, elementFormats, false, false, false); // save settings XMLMemento memento = XMLMemento.createWriteRoot("TEST"); if (fViewer instanceof TreeModelViewer == false) return; ((TreeModelViewer) fViewer).saveState(memento); // throw away any settings inside the viewer and create a new viewer // with memento settings, this is the same effect resulted from closing // and opening workspace again. recreateViewer(); if (fViewer instanceof TreeModelViewer == false) return; ((TreeModelViewer) fViewer).initState(memento); setInput(IFormattedValues.NATURAL_FORMAT); preferenceFormat = (String) fViewer.getPresentationContext().getProperty(PROP_FORMATTED_VALUE_FORMAT_PREFERENCE); validateModel(elementFormats, preferenceFormat, "", preferenceFormat, ""); }