• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java Mode类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中danta.api.configuration.Mode的典型用法代码示例。如果您正苦于以下问题:Java Mode类的具体用法?Java Mode怎么用?Java Mode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Mode类属于danta.api.configuration包,在下文中一共展示了Mode类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: process

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public void process(final ExecutionContext executionContext, final TemplateContentModelImpl contentModel)
        throws ProcessException {
    try {
        SlingHttpServletRequest request = (SlingHttpServletRequest) executionContext.get(SLING_HTTP_REQUEST);
        Configuration config = configurationProvider.getFor(request.getResource().getResourceType());
        Collection<String> propsWithJSONValues = config.asStrings(XK_DESERIALIZE_JSON_PROPS_CP, Mode.MERGE);

        for(String propName : propsWithJSONValues) {
            if(contentModel.has(propName)) {
                String jsonString = contentModel.getAsString(propName);
                if(JSONValue.isValidJson(jsonString)) {
                    Object value = JSONValue.parse(jsonString);
                    contentModel.set(propName, value);
                }
            }
        }
    } catch (Exception e) {
        throw new ProcessException(e);
    }
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:22,代码来源:DeserializeJSONPropertyValuesContextProcessor.java


示例2: valuesFor

import danta.api.configuration.Mode; //导入依赖的package包/类
private Collection<Value> valuesFor(String paramName, Mode mode)
        throws Exception {

    Collection<Value> values = Collections.emptyList();

    switch (mode) {
        case INHERIT:
            values = getInherited(paramName);
            break;
        case MERGE:
            values = getMerged(paramName);
            break;
        case COMBINE:
            values = getCombined(paramName);
            break;
        case SHALLOW:
            values = getShallow(paramName);
            break;
        default:
            break;
    }
    return values;
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:24,代码来源:AEMConfigurationProviderImpl.java


示例3: process

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public void process(final ExecutionContext executionContext, TemplateContentModelImpl contentModel)
        throws ProcessException {
    try {
        Resource resource = (Resource) executionContext.get(JAHIA_RESOURCE);
        Configuration configuration = configurationProvider.getFor(resource);
        Collection<String> propsWithJSONValues = configuration.asStrings(XK_DESERIALIZE_JSON_PROPS_CP, Mode.MERGE);

        for(String propName : propsWithJSONValues) {
            if(contentModel.has(propName)) {
                String jsonString = contentModel.getAsString(propName);
                if(JSONValue.isValidJson(jsonString)) {
                    Object value = JSONValue.parse(jsonString);
                    contentModel.set(propName, value);
                }
            }
        }
    } catch (Exception e) {
        throw new ProcessException(e);
    }
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:22,代码来源:DeserializeJSONPropertyValuesContextProcessor.java


示例4: process

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public void process(final ExecutionContext executionContext, TemplateContentModel contentModel)
        throws ProcessException {
    try {
        Resource resource = (Resource) executionContext.get(JAHIA_RESOURCE);
        Configuration configuration = configurationProvider.getFor(resource);

        Collection<String> listClasses = configuration.asStrings(LIST_CLASSES_CONFIG_PROP, Mode.MERGE);
        contentModel.set(LIST_PROPERTIES_KEY + "." + LIST_CLASSES_PROP, listClasses);
        Collection<String> itemClasses = configuration.asStrings(LIST_ITEM_CLASSES_CONFIG_PROP, Mode.MERGE);
        contentModel.set(LIST_PROPERTIES_KEY + "." + LIST_ITEM_CLASSES_PROP, itemClasses);

    } catch (Exception e) {
        throw new ProcessException(e);
    }
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:17,代码来源:AddItemListConfigsContextProcessor.java


示例5: valuesFor

import danta.api.configuration.Mode; //导入依赖的package包/类
private Collection<Object> valuesFor(String paramName, Mode mode)
        throws Exception {

    Collection<Object> values = Collections.emptyList();

    switch (mode) {
        case INHERIT:
            values = getInherited(paramName);
            break;
        case MERGE:
            values = getMerged(paramName);
            break;
        case COMBINE:
            values = getCombined(paramName);
            break;
        case SHALLOW:
            values = getShallow(paramName);
            break;
        default:
            break;
    }
    return values;
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:24,代码来源:JahiaConfigurationProviderImpl.java


示例6: asStrings

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public List<String> asStrings(String paramName, Mode mode) throws Exception {
    Collection<Object> collection = valuesFor(paramName, mode);
    List<String> list = new LinkedList<>();
    for (Object obj : collection) {
        if (obj instanceof JSONArray) {
            JSONArray jsonArray = (JSONArray) obj;
            for (int i = 0; i < jsonArray.size(); i++) {
                Object objFinal = jsonArray.get(i);
                if (objFinal instanceof String) {
                    String value = (String) objFinal;
                    list.add(value);
                }
            }
        }
    }
    return list;
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:19,代码来源:JahiaConfigurationProviderImpl.java


示例7: doGet

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
        throws ServletException, IOException {
    PrintWriter out = response.getWriter();

    try {
        Resource resource = request.getResource();
        if (resource != null && configurationProvider.hasConfig(resource.getResourceType())) {
            JSONObject filteredContentMap = new JSONObject();
            TemplateContentModel templateContentModel = (TemplateContentModel) contentModelFactoryService.getContentModel(request, response);

            boolean clientAccessible =  (Boolean) templateContentModel.get(CONFIG_PROPERTIES_KEY + DOT + XK_CLIENT_ACCESSIBLE_CP);
            if (clientAccessible) {
                // get list of contexts
                Configuration configuration = configurationProvider.getFor(resource.getResourceType());
                Collection<String> props = configuration.asStrings(XK_CLIENT_MODEL_PROPERTIES_CP, Mode.MERGE);
                String[] contexts = props.toArray(new String[0]);

                // get content model json with the XK_CLIENT_MODEL_PROPERTIES_CP contexts
                filteredContentMap = templateContentModel.toJSONObject(contexts);

                // add component id
                String componentContentId = DigestUtils.md5Hex(resource.getPath());
                filteredContentMap.put(XK_CONTENT_ID_CP, componentContentId);
            }
            out.write(JSONObject.toJSONString(filteredContentMap));
        } else {
            out.write(new JSONObject().toJSONString());
        }
    } catch (Exception ew) {
        throw new ServletException(ew);
    }
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:34,代码来源:ComponentContentModelToJSONServlet.java


示例8: doGet

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
        throws ServletException, IOException {
    PrintWriter out = response.getWriter();

    try {
        Resource resource = request.getResource();
        if (resource != null && configurationProvider.hasConfig(resource.getResourceType())) {
            JSONObject filteredContentMap = new JSONObject();
            TemplateContentModel templateContentModel = (TemplateContentModel) contentModelFactoryService.getContentModel(request, response);

            boolean clientAccessible =  (Boolean) templateContentModel.get(CONFIG_PROPERTIES_KEY + DOT + XK_CLIENT_ACCESSIBLE_CP);
            if (clientAccessible) {
                // get list of contexts
                Configuration configuration = configurationProvider.getFor(resource.getResourceType());
                Collection<String> props = configuration.asStrings(XK_CLIENT_MODEL_PROPERTIES_CP, Mode.MERGE);
                String[] contexts = props.toArray(new String[0]);

                // get content model json with the XK_CLIENT_MODEL_PROPERTIES_CP contexts
                filteredContentMap = templateContentModel.toJSONObject(contexts);

                // add component id
                String componentContentId = DigestUtils.md5Hex(resource.getPath());
                filteredContentMap.put(XK_CONTENT_ID_CP, componentContentId);
            }

            // add component list with clientaccessible as true on the resource page
            filteredContentMap.put(PAGE_COMPONENT_RESOURCE_LIST_AN, getComponentList(resource));

            out.write(JSONObject.toJSONString(filteredContentMap));
        } else {
            out.write(new JSONObject().toJSONString());
        }
    } catch (Exception ew) {
        throw new ServletException(ew);
    }
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:38,代码来源:PageContentModelToJSONServlet.java


示例9: process

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public void process(final ExecutionContext executionContext, final TemplateContentModel contentModel)
        throws ProcessException {
    try {
        SlingHttpServletRequest request = (SlingHttpServletRequest) executionContext.get(SLING_HTTP_REQUEST);
        Resource resource = request.getResource();

        Configuration config = configurationProvider.getFor(request.getResource().getResourceType());
        Collection<String> models = config.asStrings(SLING_MODELS_CONFIG_PROPERTY_NAME, Mode.MERGE);

        Object model;
        String modelName = "";
        Map<String, Object> modelData = new HashMap<>();

        for (String modelId : models) {
            Class<?> modelClass= Class.forName(modelId);

            if (modelFactory.isModelClass(modelClass)) {
                model = resource.adaptTo(modelClass);
                modelData = getModelProperties(model);
                modelName =  modelClass.getSimpleName();
                contentModel.set(SLING_MODEL_PROPERTIES_KEY + DOT + modelName, modelData);
            } else {
                log.error("{} is not a Sling Model", modelClass);
            }
        }

    } catch (Exception e) {
        throw new ProcessException(e);
    }
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:32,代码来源:AddSlingModelsPropertiesContextProcessor.java


示例10: process

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public void process(final ExecutionContext executionContext, final TemplateContentModelImpl contentModel)
        throws ProcessException {
    try {
        SlingHttpServletRequest request = (SlingHttpServletRequest) executionContext.get(SLING_HTTP_REQUEST);
        Configuration config = configurationProvider.getFor(request.getResource().getResourceType());
        Map<String, Object> styling = new HashMap<>();
        Collection<String> containerClasses = config.asStrings(XK_CONTAINER_CLASSES_CP, Mode.MERGE);
        if(contentModel.has(PAGE_PROPERTIES_KEY) && contentModel.getAs(PAGE_PROPERTIES_KEY + "." + IS_EDIT_OR_DESIGN_MODE, Boolean.class)) {
            Collection<String> triggers = config.asStrings(XK_PLACEHOLDER_TRIGGERS_CP, Mode.SHALLOW);
            if (triggers != null && !triggers.isEmpty()) {
                boolean displayPlaceholder = true;
                for (String triggerProp : triggers) {
                    String propVal = contentModel.getAsString(triggerProp);
                    if (StringUtils.isNotEmpty(propVal)) {
                        displayPlaceholder = false;
                        break;
                    }
                }
                if (displayPlaceholder) {
                    styling.put(DISPLAY_PLACEHOLDER_STYLING_PROPERTY_NAME, DISPLAY_PLACEHOLDER_CSSN);
                    containerClasses.add(DISPLAY_PLACEHOLDER_CSSN);
                }
            }
        }
        styling.put(CONTAINER_CLASSES_CP, containerClasses);
        StringBuffer stylingString = new StringBuffer();
        for (String className : containerClasses) {
            stylingString.append(className).append(SPACE);
        }
        styling.put(CONTAINER_STYLING_CSSN_AV, stylingString.toString());
        contentModel.set(STYLING_PROPERTIES_KEY, styling);

    } catch (Exception e) {
        throw new ProcessException(e);
    }

}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:39,代码来源:AddStylingContextProcessor.java


示例11: process

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public void process(final ExecutionContext executionContext, TemplateContentModel contentModel)
        throws ProcessException {
    try {
        SlingHttpServletRequest request = (SlingHttpServletRequest) executionContext.get(SLING_HTTP_REQUEST);
        Resource resource = request.getResource();
        Configuration configuration = configurationProvider.getFor(resource.getResourceType());
        Collection<String> listClasses = configuration.asStrings(LIST_CLASSES_CONFIG_PROP, Mode.MERGE);
        contentModel.set(LIST_PROPERTIES_KEY + "." + LIST_CLASSES_PROP, listClasses);
        Collection<String> itemClasses = configuration.asStrings(LIST_ITEM_CLASSES_CONFIG_PROP, Mode.MERGE);
        contentModel.set(LIST_PROPERTIES_KEY + "." + LIST_ITEM_CLASSES_PROP, itemClasses);
    } catch (Exception e) {
        throw new ProcessException(e);
    }
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:16,代码来源:AddItemListConfigsContextProcessor.java


示例12: doExecute

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public ActionResult doExecute(HttpServletRequest req, RenderContext renderContext, Resource resource,
                              JCRSessionWrapper session, Map<String, List<String>> parameters,
                              URLResolver urlResolver) throws Exception {
    JSONObject jsonObject = new JSONObject();
    final HttpServletResponse response = renderContext.getResponse();

    try {
        TemplateContentModel contentModel = (TemplateContentModel) contentModelFactoryService.getContentModel(
                req, response, renderContext, resource);
        Configuration configuration = configurationProvider.getFor(resource);
        Map<String, Object> config = contentModel.getAs(CONFIG_PROPERTIES_KEY, Map.class);
        boolean clientAccessible = Boolean.valueOf(config.get(XK_CLIENT_ACCESSIBLE_CP) + BLANK);
        if (clientAccessible) {
            Collection<String> props = configuration.asStrings(XK_CLIENT_MODEL_PROPERTIES_CP, Mode.MERGE);
            String[] contexts = props.toArray(new String[props.size()]);

            // Get content model json with the XK_CLIENT_MODEL_PROPERTIES_CP contexts
            jsonObject = contentModel.toJSONObject(contexts);

            // Add component id
            String componentContentId = DigestUtils.md5Hex(resource.getPath());
            jsonObject.put(XK_CONTENT_ID_CP, componentContentId);
        }
    } catch (Exception ew) {
            throw new ServletException(ew);
    }

    response.setContentType(SERVER_RESPONSE_CONTENT_TYPE);
    response.getWriter().write( jsonObject.toString() );

    return ActionResult.OK;
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:34,代码来源:ComponentContentModelToJSONActionServlet.java


示例13: process

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public void process(final ExecutionContext executionContext, final TemplateContentModel contentModel)throws ProcessException {
    try {
        Resource resource = (Resource) executionContext.get(JAHIA_RESOURCE);
        HttpServletRequest request = (HttpServletRequest) executionContext.get(HTTP_REQUEST);

        if (resource != null && configurationProvider != null) {

            Configuration configuration = configurationProvider.getFor(resource);
            Map<String, Object> config = contentModel.getAs(CONFIG_PROPERTIES_KEY, Map.class);
            Map<String, Object> filteredContentMap = new TreeMap<>();
            String componentContentId = DigestUtils.md5Hex(resource.getPath());

            boolean clientAccessible = Boolean.valueOf(config.get(XK_CLIENT_ACCESSIBLE_CP) + BLANK);
            if (clientAccessible) {
                filteredContentMap.put(XK_CONTENT_ID_CP, componentContentId);
                Collection<String> props = configuration.asStrings(XK_CLIENT_MODEL_PROPERTIES_CP, Mode.MERGE);
                for (String propName : props) {
                    Object value = contentModel.get(propName);
                    if (value != null) {
                        filteredContentMap.put(propName, value);
                    }
                }
            }
            //request.setAttribute(CLIENT_COMPONENT_CONTENT_MODEL_REQ_AN, filteredContentMap);
        }
    } catch (Exception e) {
        LOG.error(LOG_PRE + " Error : ",e);
        throw new ProcessException(e);
    }
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:32,代码来源:GenerateClientComponentContentModelContextProcessor.java


示例14: asString

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public String asString(String paramName, Mode mode)
        throws Exception {
    Collection<Object> collection = valuesFor(paramName, mode);
    if(collection.size() > 0) {
        Object obj = collection.iterator().next();
        if (obj instanceof String) {
            String value = (String) obj;

            return value;
        }
    }

    return BLANK;
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:16,代码来源:JahiaConfigurationProviderImpl.java


示例15: asNumbers

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public List<Number> asNumbers(String paramName, Mode mode) throws Exception {
    Collection<Object> collection = valuesFor(paramName, mode);
    List<Number> list = new LinkedList<>();
    for (Object obj : collection) {
        if (obj instanceof Number) {
            Number value = (Number) obj;
            list.add(value);
        }
    }
    return list;
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:13,代码来源:JahiaConfigurationProviderImpl.java


示例16: asDates

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public List<Date> asDates(String paramName, Mode mode) throws Exception {
    Collection<Object> collection = valuesFor(paramName, mode);
    List<Date> list = new LinkedList<>();
    for (Object obj : collection) {
        if (obj instanceof Date) {
            Date value = (Date) obj;
            list.add(value);
        }
    }
    return list;
}
 
开发者ID:DantaFramework,项目名称:JahiaDF,代码行数:13,代码来源:JahiaConfigurationProviderImpl.java


示例17: process

import danta.api.configuration.Mode; //导入依赖的package包/类
/**
 * @param executionContext
 * @param contentModel
 * @throws Exception
 */
@Override
public void process(final ExecutionContext executionContext, final TemplateContentModelImpl contentModel)
        throws ProcessException {
    try {
        SlingHttpServletRequest request = (SlingHttpServletRequest) executionContext.get(SLING_HTTP_REQUEST);
        Resource resource = request.getResource();
        log.debug("for {}", resource.getPath());
        if (resource != null) {
            ResourceResolver resourceResolver = request.getResourceResolver();
            Designer designer = resourceResolver.adaptTo(Designer.class);
            final PageManager pageManager = resourceResolver.adaptTo(PageManager.class);
            final TagManager tm = (TagManager) resource.getResourceResolver().adaptTo(TagManager.class);
            Page page = pageManager.getContainingPage(resource);
            if (page != null) {
                if (!contentModel.has(PAGE_PROPERTIES_KEY)) {
                    Configuration configuration = configurationProvider.getFor(page.getContentResource().getResourceType());
                    Collection<String> bodyClasses = configuration.asStrings(XK_CONTAINER_CLASSES_CP, Mode.MERGE);
                    Node pageContentNode = page.getContentResource().adaptTo(Node.class);
                    Map<String, Object> pageContent = propsToMap(pageContentNode.getProperties());
                    pageContent.put(PATH, page.getPath());
                    pageContent.put(PAGE_NAME, page.getName());
                    pageContent.put(LINK, page.getPath() + HTML_EXT);
                    pageContent.put(BODY_CLASSES, bodyClasses);
                    pageContent.put(TITLE, page.getTitle());
                    pageContent.put(DESCRIPTION, page.getProperties().get(JCR_DESCRIPTION, ""));
                    pageContent.put(PAGE_TITLE, page.getProperties().get(PAGE_TITLE, ""));
                    pageContent.put(SUBTITLE, page.getProperties().get(SUBTITLE, ""));
                    pageContent.put(HIDE_IN_NAV, page.getProperties().get(HIDE_IN_NAV, ""));
                    pageContent.put(KEYWORDS, PageUtils.getKeywords(pageContent, tm));
                    pageContent.put(TAGS, PageUtils.getTags(pageContent));
                    pageContent.put(WCM_MODE, GeneralRequestObjects.getWCMModeString(request));
                    pageContent.put(IS_EDIT_MODE, GeneralRequestObjects.isEditMode(request));
                    pageContent.put(IS_DESIGN_MODE, GeneralRequestObjects.isDesignMode(request));
                    pageContent.put(IS_EDIT_OR_DESIGN_MODE, GeneralRequestObjects.isEditOrDesignMode(request));

                    if (designer != null) {
                        Design design = designer.getDesign(page);
                        if (design != null && design.getPath() != null) {
                            pageContent.put(FAVICON, design.getPath() + "/" + FAVICON + ICO_EXT);
                        }
                    }

                    String navigationTitle = PageUtils.getNavigationTitle(page);
                    if (null != navigationTitle) {
                        pageContent.put(NAVIGATION_TITLE, PageUtils.getNavigationTitle(page));
                    }
                    // add transformed path image
                    String pageImagePath = assetPathService.getPageImagePath(page, page.getContentResource());
                    if(StringUtils.isNotEmpty(pageImagePath)){
                        pageContent.put(IMAGE_PATH, pageImagePath);
                    }

                    // add interface mode
                    if (AuthoringUIMode.fromRequest(request) == AuthoringUIMode.TOUCH) {
                        pageContent.put(IS_TOUCH_UI_MODE, true);
                        pageContent.put(IS_CLASSIC_UI_MODE, false);
                    } else {
                        pageContent.put(IS_CLASSIC_UI_MODE, true);
                        pageContent.put(IS_TOUCH_UI_MODE, false);
                    }
                    contentModel.set(PAGE_PROPERTIES_KEY, pageContent);
                }
            }
        }
    } catch (Exception e) {
        throw new ProcessException(e);
    }
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:74,代码来源:AddPagePropertiesContextProcessor.java


示例18: defaultMode

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public Mode defaultMode() {
    return DEFAULT_MODE;
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:5,代码来源:AEMConfigurationProviderImpl.java


示例19: names

import danta.api.configuration.Mode; //导入依赖的package包/类
@Override
public Set<String> names(Mode mode)
        throws Exception {
    return (mode == Mode.SHALLOW) ? names(true) : propNamesDeepCache;
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:6,代码来源:AEMConfigurationProviderImpl.java


示例20: distilledMap

import danta.api.configuration.Mode; //导入依赖的package包/类
public Map<String, Object> distilledMap(Mode mode)
        throws Exception {
    return distilledMap(mode, true);
}
 
开发者ID:DantaFramework,项目名称:AEM,代码行数:5,代码来源:AEMConfigurationProviderImpl.java



注:本文中的danta.api.configuration.Mode类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java CollisionHandler类代码示例发布时间:2022-05-16
下一篇:
Java Speedometer类代码示例发布时间:2022-05-16
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap