• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers

Dynamic Dropdown

New Here ,
Mar 13, 2019 Mar 13, 2019

Copy link to clipboard

Copied

Could someone help with converting the below hard coded servlet for dynamic drop down. I want to remove the hard coding in this

import java.io.IOException;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.jcr.NoSuchWorkspaceException;

import javax.jcr.Node;

import javax.jcr.NodeIterator;

import javax.jcr.RepositoryException;

import javax.jcr.Session;

import javax.servlet.Servlet;

import javax.servlet.ServletException;

import org.apache.sling.api.SlingHttpServletRequest;

import org.apache.sling.api.SlingHttpServletResponse;

import org.apache.sling.api.resource.Resource;

import org.apache.sling.api.resource.ResourceMetadata;

import org.apache.sling.api.resource.ResourceResolver;

import org.apache.sling.api.resource.ResourceResolverFactory;

import org.apache.sling.api.resource.ValueMap;

import org.apache.sling.api.servlets.HttpConstants;

import org.apache.sling.api.servlets.SlingAllMethodsServlet;

import org.osgi.framework.Constants;

import org.osgi.service.component.annotations.Component;

import org.osgi.service.component.annotations.Reference;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import com.adobe.cq.commerce.common.ValueMapDecorator;

import com.adobe.granite.ui.components.ds.DataSource;

import com.adobe.granite.ui.components.ds.SimpleDataSource;

import com.adobe.granite.ui.components.ds.ValueMapResource;

@component(

service = Servlet.class,

property = {

Constants.SERVICE_DESCRIPTION + "=Simple Demo Servlet",

"sling.servlet.methods=" + HttpConstants.METHOD_GET, "sling.servlet.paths=" + "/bin/AnswerPathDropdown",

"sling.servlet.extensions=" + "sample",

}

)

public class AnswerPathDropdown extends SlingAllMethodsServlet {

private static final long serialVersionUID = 1;

Logger logger = LoggerFactory.getLogger(this.getClass());

@reference

ResourceResolverFactory resolverFactory;

public void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {

Map<String, Object> param = new HashMap<String, Object>();

param.put(ResourceResolverFactory.SUBSERVICE, "datawrite");

logger.info("Entered Dynamic dropdown servlet");

try {

String urlPath = null;

Enumeration<?> values = request.getHeaders("Referer");

logger.info("values is " + values);

if (values != null) {

while (values.hasMoreElements()) {

urlPath = (String) values.nextElement();

logger.info("urlPath is " + urlPath);

}

}

String currentpagepath = urlPath.substring(0, urlPath.length() - 5);

String currentPath = null;

if (currentpagepath.contains("http://localhost:4502/editor.html/")) {

currentPath = currentpagepath.replaceAll("http://localhost:4502/editor.html", "");

}

ResourceResolver resolver = resolverFactory.getServiceResourceResolver(param);

Session session = resolver.adaptTo(Session.class);

logger.info("session is " + session);

Node rootNode = session.getNode(currentPath + "/jcr:content/pathPar");

logger.info("rootNode is " + rootNode.getPath());

NodeIterator nodeItr = rootNode.getNodes();

List<Resource> fakeResourceList = new ArrayList<Resource>();

ValueMap vm = null;

logger.info("nodeItr is " + nodeItr);

ValueMap vm1 = new ValueMapDecorator(new HashMap<String, Object>());

vm1.put("value", "");

vm1.put("text", "");

fakeResourceList.add(new ValueMapResource(request.getResourceResolver(), new ResourceMetadata(), "nt:unstructured", vm1));

int i = 1;

String path = null;

while (nodeItr.hasNext()) {

Node cNode = nodeItr.nextNode();

vm = new ValueMapDecorator(new HashMap<String, Object>());

String path1 = cNode.getPath();

path = path1.substring(path1.lastIndexOf('/') + 1);

String Text = "Path" + i;

vm.put("value", path);

vm.put("text", Text);

logger.info("path is " + path);

i++;

fakeResourceList.add(new ValueMapResource(request.getResourceResolver(), new ResourceMetadata(), "nt:unstructured", vm));

}

Object ds = new SimpleDataSource(fakeResourceList.iterator());

request.setAttribute(DataSource.class.getName(), ds);

} catch (NoSuchWorkspaceException e) {

logger.info("NoSuchWorkspaceException Exception is " + e);

} catch (RepositoryException e) {

logger.info("RepositoryException Exception is " + e);

} catch (org.apache.sling.api.resource.LoginException e) {

logger.info("Login Exception is " + e);

}

}

}

TOPICS
Acrobat SDK and JavaScript

Views

254

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Mar 13, 2019 Mar 13, 2019

This forum is about JavaScript in Adobe Acrobat. Your question has nothing to do with that.

Likes

Translate

Translate
Community Expert ,
Mar 13, 2019 Mar 13, 2019

Copy link to clipboard

Copied

LATEST

This forum is about JavaScript in Adobe Acrobat. Your question has nothing to do with that.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines