/* (non-Javadoc) * @see org.jboss.tools.vpe.editor.template.VpeTemplate#create(org.jboss.tools.vpe.editor.context.VpePageContext, org.w3c.dom.Node, org.mozilla.interfaces.nsIDOMDocument) */ public VpeCreationData create( VpePageContext pageContext, Node sourceNode, nsIDOMDocument visualDocument) { Element sourceElement = (Element) sourceNode; nsIDOMElement select = visualDocument.createElement(HTML.TAG_SELECT); VisualDomUtil.copyAttributes(sourceElement, select, COMMON_SPRING_FORM_ATTRIBUTES_MAP); if (SpringConstant.VALUE_TRUE.equals( sourceElement.getAttribute(SpringConstant.ATTR_DISABLED))) { select.setAttribute(HTML.ATTR_DISABLED, HTML.ATTR_DISABLED); } if (!SpringConstant.VALUE_FALSE.equals( sourceElement.getAttribute(SpringConstant.ATTR_MULTIPLE))) { select.setAttribute(HTML.ATTR_MULTIPLE, HTML.ATTR_MULTIPLE); } if (sourceElement.hasAttribute(SpringConstant.ATTR_ITEMS)) { // an inner 'option' tag has to be generated String optionBody = sourceElement.getAttribute(SpringConstant.ATTR_ITEMS); if (sourceElement.hasAttribute(SpringConstant.ATTR_ITEM_LABEL)) { optionBody += '.' + sourceElement.getAttribute(SpringConstant.ATTR_ITEM_LABEL); } nsIDOMElement option = visualDocument.createElement(HTML.TAG_OPTION); option.appendChild(visualDocument.createTextNode(optionBody)); select.appendChild(option); } return new VpeCreationData(select); }
public void testNoDefaultLocaleForChangeAndRefresh() throws Throwable { VpeController controller = openInVpe(JsfAllTests.IMPORT_JSF_LOCALES_PROJECT_NAME, NO_DEFLOC_CHANGE_REFRESH_PAGE); nsIDOMDocument doc = controller.getXulRunnerEditor().getDOMDocument(); nsIDOMElement localeText = doc.getElementById(LOCALE_TEXT_ID); String localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'de' locale", HELLO2_DE.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ /* * Change the locale */ Element fViewElement = controller.getSourceBuilder().getSourceDocument().getElementById(FVIEW_ID); int offset = controller.getSourceBuilder().getPosition(fViewElement, 0, false); assertTrue( "Previous locale should be 'de'", "de" .equalsIgnoreCase( fViewElement.getAttribute("locale"))); // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ IRegion reg = new FindReplaceDocumentAdapter( controller.getSourceBuilder().getStructuredTextViewer().getDocument()) .find(offset, "de", true, true, false, false); controller .getSourceBuilder() .getStructuredTextViewer() .getDocument() .replace(reg.getOffset(), reg.getLength(), "en_GB"); /* * Wait until new value is applied and children are refreshed. * Wait while all deferred events are processed */ while (Display.getCurrent().readAndDispatch()) ; /* * Wait while all jobs including started through deferred events are ended */ JobUtils.delay(VpeController.DEFAULT_UPDATE_DELAY_TIME * 4); TestUtil.waitForIdle(); fViewElement = controller.getSourceBuilder().getSourceDocument().getElementById(FVIEW_ID); assertTrue( "Current locale should be 'en_GB'", "en_GB" .equalsIgnoreCase( fViewElement.getAttribute("locale"))); // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ doc = controller.getXulRunnerEditor().getDOMDocument(); localeText = doc.getElementById(LOCALE_TEXT_ID); localizedText = getLocalizedText(localeText); /* * Check the new localized message. */ assertTrue( "Text is '" + localizedText + "', but should be in 'en_GB' locale", HELLO_EN_GB.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ closeEditors(); }
/** * Tests that the dafault locale is applied by default, f:view has no locale attribute in this * case. * * @throws Throwable */ public void testDefaultLocale() throws Throwable { VpeController controller = openInVpe(JsfAllTests.IMPORT_I18N_PROJECT_NAME, DEFAULT_LOCALE_PAGE); nsIDOMDocument doc = controller.getXulRunnerEditor().getDOMDocument(); nsIDOMElement localeText = doc.getElementById(LOCALE_TEXT_ID); String localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'de' locale", HELLO_DE.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ closeEditors(); }
public void testJbide() throws Throwable { // get test page path IFile file = (IFile) TestUtil.getComponentPath(TEST_PAGE_NAME, RichFacesAllTests.IMPORT_PROJECT_NAME); assertNotNull( "Could not open specified file. componentPage = " + TEST_PAGE_NAME + ";projectName = " + RichFacesAllTests.IMPORT_PROJECT_NAME, file); //$NON-NLS-1$ IEditorInput input = new FileEditorInput(file); assertNotNull("Editor input is null", input); // open and get editor JSPMultiPageEditor part = openEditor(input); // get dom document nsIDOMDocument document = TestUtil.getVpeVisualDocument(part); nsIDOMElement element = document.getDocumentElement(); assertNotNull(element); // get root node nsIDOMNode node = queryInterface(element, nsIDOMNode.class); List<nsIDOMNode> elements = new ArrayList<nsIDOMNode>(); // find "table" elements TestUtil.findElementsByName(node, elements, HTML.TAG_TABLE); assertEquals(2, elements.size()); // get first table. It has default attributes (minValue=0, maxValue=100) nsIDOMNode defaultInputSlider = elements.get(0); // check min-,max- values checkMinMaxValue(defaultInputSlider, 0, 100); // get first table. It has edited attributes (minValue=-10, // maxValue=200) nsIDOMNode editedInputSlider = elements.get(1); // check min-,max- values checkMinMaxValue(editedInputSlider, -10, 200); // check exception if (getException() != null) { throw getException(); } }
/** @see com.aptana.ide.editors.unified.ContributedBrowser#execute(java.lang.String) */ public boolean execute(String script) { nsIDOMDocument document = internalGetDocument(); if (document != null) { nsIDOMElement se = document.createElement("script"); // $NON-NLS-1$ nsIDOMHTMLScriptElement scriptBlock = (nsIDOMHTMLScriptElement) se.queryInterface(nsIDOMHTMLScriptElement.NS_IDOMHTMLSCRIPTELEMENT_IID); String s2 = "if(" + script + "){" + "document.getElementById('execute').setAttribute('text','success');}"; //$NON-NLS-1$ // //$NON-NLS-2$ //$NON-NLS-3$ scriptBlock.setText(s2); nsIDOMElement executeBlock = document.getElementById("execute"); // $NON-NLS-1$ if (executeBlock == null) { executeBlock = document.createElement("div"); // $NON-NLS-1$ executeBlock.setAttribute("id", "execute"); // $NON-NLS-1$ //$NON-NLS-2$ nsIDOMNode body = document.getElementsByTagName("body").item(0); // $NON-NLS-1$ body.appendChild(executeBlock); } executeBlock.setAttribute("text", ""); // $NON-NLS-1$ //$NON-NLS-2$ nsIDOMNode head = document.getElementsByTagName("head").item(0); // $NON-NLS-1$ head.appendChild(scriptBlock); executeBlock = document.getElementById("execute"); // $NON-NLS-1$ return "success".equals(executeBlock.getAttribute("text")); // $NON-NLS-1$ //$NON-NLS-2$ } else { return false; } }
/** * If there are several f:views on the page. Only the last f:view one should be applied on server, * but each f:view should have its own locale. * * @throws Throwable */ public void testSeveralFViewsWithLocales() throws Throwable { IFile file = (IFile) TestUtil.getComponentPath(SEVERAL_FVIEWS_PAGE, JsfAllTests.IMPORT_JSF_20_PROJECT_NAME); assertNotNull( "Could not open specified file." //$NON-NLS-1$ + " componentPage = " + SEVERAL_FVIEWS_PAGE //$NON-NLS-1$ + ";projectName = " + JsfAllTests.IMPORT_JSF_20_PROJECT_NAME, file); //$NON-NLS-1$ IEditorInput input = new FileEditorInput(file); assertNotNull("Editor input is null", input); // $NON-NLS-1$ /* * open and get the editor */ JSPMultiPageEditor part = openEditor(input); VpeController controller = TestUtil.getVpeController(part); javaSources = EclipseResourceUtil.getJavaProjectSrcLocations(file.getProject()); nsIDOMDocument doc = controller.getXulRunnerEditor().getDOMDocument(); nsIDOMElement localeText = doc.getElementById(LOCALE_TEXT0_ID); String localizedText = getLocalizedText(localeText); checkLocaleStrings(file, "en", localizedText); // $NON-NLS-1$ localeText = doc.getElementById(LOCALE_TEXT1_ID); localizedText = getLocalizedText(localeText); checkLocaleStrings(file, "de", localizedText); // $NON-NLS-1$ localeText = doc.getElementById(LOCALE_TEXT2_ID); localizedText = getLocalizedText(localeText); /* * f:view will use default locale if nothing is specified. */ checkLocaleStrings(file, "en_US", localizedText); // $NON-NLS-1$ localeText = doc.getElementById(LOCALE_TEXT_ID); localizedText = getLocalizedText(localeText); checkLocaleStrings(file, "en_GB", localizedText); // $NON-NLS-1$ closeEditors(); }
/** * After the locale attribute value has been changed and Refresh button is clicked - the correct * locale should be applied, bundle messages should be updated and showed in the correct locale. * * @throws Throwable */ public void testChangeLocaleAndRefresh() throws Throwable { VpeController controller = openInVpe(JsfAllTests.IMPORT_JSF_20_PROJECT_NAME, CHANGE_LOCALE_AND_REFRESH_PAGE); nsIDOMDocument doc = controller.getXulRunnerEditor().getDOMDocument(); nsIDOMElement localeText = doc.getElementById(LOCALE_TEXT_ID); String localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'de' locale", HELLO2_DE.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ /* * Change the locale */ Element fViewElement = controller.getSourceBuilder().getSourceDocument().getElementById(FVIEW_ID); assertTrue( "Previous locale should be 'de'", "de" .equalsIgnoreCase( fViewElement.getAttribute("locale"))); // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ fViewElement.setAttribute("locale", "en_GB"); // $NON-NLS-1$ //$NON-NLS-2$ /* * Wait until new value is applied and children are refreshed. */ TestUtil.delay(500); TestUtil.waitForIdle(); assertTrue( "Current locale should be 'en_GB'", "en_GB" .equalsIgnoreCase( fViewElement.getAttribute("locale"))); // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ doc = controller.getXulRunnerEditor().getDOMDocument(); localeText = doc.getElementById(LOCALE_TEXT_ID); localizedText = getLocalizedText(localeText); /* * Check the new localized message. */ assertTrue( "Text is '" + localizedText + "', but should be in 'en_GB' locale", HELLO_EN_GB.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ closeEditors(); }
/** @see com.aptana.ide.editors.unified.ContributedBrowser#displaySource() */ public void displaySource() { if (document != null) { nsIDOMSerializer serializer = (nsIDOMSerializer) Mozilla.getInstance() .getComponentManager() .createInstanceByContractID( "@mozilla.org/xmlextras/xmlserializer;1", null, //$NON-NLS-1$ nsIDOMSerializer.NS_IDOMSERIALIZER_IID); String source = serializer.serializeToString(document.getDocumentElement()); try { final String newFileName = FileUtils.getRandomFileName("source", ".html"); // $NON-NLS-1$ //$NON-NLS-2$ final File temp = new File(FileUtils.systemTempDir + File.separator + newFileName); FileUtils.writeStringToFile(source, temp); UIJob openJob = new UIJob(Messages.getString("FirefoxBrowser.Open_Source_Editor")) // $NON-NLS-1$ { public IStatus runInUIThread(IProgressMonitor monitor) { IEditorInput input = CoreUIUtils.createJavaFileEditorInput(temp); try { IDE.openEditor( Activator.getDefault() .getWorkbench() .getActiveWorkbenchWindow() .getActivePage(), input, IDE.getEditorDescriptor(newFileName).getId()); } catch (PartInitException e) { e.printStackTrace(); } return Status.OK_STATUS; } }; openJob.schedule(); } catch (IOException e) { e.printStackTrace(); } } }
/** * Creates a node of the visual tree on the node of the source tree. This visual node should not * have the parent node This visual node can have child nodes. * * @param pageContext Contains the information on edited page. * @param sourceNode The current node of the source tree. * @param visualDocument The document of the visual tree. * @return The information on the created node of the visual tree. */ public VpeCreationData create( VpePageContext pageContext, Node sourceNode, nsIDOMDocument visualDocument) { ComponentUtil.setCSSLink(pageContext, SPACER_CSS_FILE, "spacer"); // $NON-NLS-1$ // convert to Element Element sourceElement = (Element) sourceNode; nsIDOMElement img = visualDocument.createElement(HTML.TAG_IMG); ComponentUtil.setImg(img, IMAGE_NAME); // set STYLE attributes String attrValue = ComponentUtil.getAttribute(sourceElement, RichFaces.ATTR_STYLE); if (attrValue.length() != 0) { img.setAttribute(HTML.ATTR_STYLE, attrValue); } // set CLASS attribute attrValue = ComponentUtil.getAttribute(sourceElement, RichFaces.ATTR_STYLE_CLASS); String styleClass = RICH_SPACER_STYLE; if (attrValue.length() != 0) { styleClass += Constants.WHITE_SPACE + attrValue; } img.setAttribute(HTML.ATTR_CLASS, styleClass); // set WIDTH attribute String width = ComponentUtil.getAttribute(sourceElement, HTML.ATTR_WIDTH, DEFAULT_SIZE); img.setAttribute(HTML.ATTR_WIDTH, width); // set HEIGHT attribute String height = ComponentUtil.getAttribute(sourceElement, HTML.ATTR_HEIGHT, DEFAULT_SIZE); img.setAttribute(HTML.ATTR_HEIGHT, height); /* * https://jira.jboss.org/jira/browse/JBIDE-3225 * Component should render its children. */ VpeCreationData creationData = VisualDomUtil.createTemplateWithTextContainer( sourceElement, img, HTML.TAG_SPAN, visualDocument); return creationData; }
public void testNoDefaultLocaleForSingleFLoadBundle() throws Throwable { VpeController controller = openInVpe(JsfAllTests.IMPORT_JSF_LOCALES_PROJECT_NAME, NO_DEFLOC_ONE_LOAD_BUNDLE_PAGE); nsIDOMDocument doc = controller.getXulRunnerEditor().getDOMDocument(); nsIDOMElement localeText = doc.getElementById(LOCALE_TEXT0_ID); String localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'en_US' locale", HELLO_EN_US.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ localeText = doc.getElementById(LOCALE_TEXT1_ID); localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'en_US' locale", HELLO_EN_US.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ localeText = doc.getElementById(LOCALE_TEXT2_ID); localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'en_US' locale", HELLO_EN_US.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ localeText = doc.getElementById(LOCALE_TEXT3_ID); localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'en_US' locale", HELLO_EN_US.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ localeText = doc.getElementById(LOCALE_TEXT_ID); localizedText = getLocalizedText(localeText); assertTrue( "Text is '" + localizedText + "', but should be in 'en_US' locale", HELLO_EN_US.equalsIgnoreCase(localizedText)); // $NON-NLS-1$ //$NON-NLS-2$ closeEditors(); }