當前位置: 首頁>>代碼示例>>Java>>正文


Java Table.addStyleName方法代碼示例

本文整理匯總了Java中com.vaadin.ui.Table.addStyleName方法的典型用法代碼示例。如果您正苦於以下問題:Java Table.addStyleName方法的具體用法?Java Table.addStyleName怎麽用?Java Table.addStyleName使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.vaadin.ui.Table的用法示例。


在下文中一共展示了Table.addStyleName方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: createComponents

import com.vaadin.ui.Table; //導入方法依賴的package包/類
private void createComponents() {
    closeBtn = SPUIComponentProvider.getButton(UIComponentIdProvider.UPLOAD_ARTIFACT_RESULT_CLOSE,
            SPUILabelDefinitions.CLOSE, SPUILabelDefinitions.CLOSE, ValoTheme.BUTTON_PRIMARY, false, null,
            SPUIButtonStyleTiny.class);
    closeBtn.addClickListener(this);

    uploadResultTable = new Table();
    uploadResultTable.addStyleName("artifact-table");
    uploadResultTable.setSizeFull();
    uploadResultTable.setImmediate(true);
    uploadResultTable.setId(UIComponentIdProvider.UPLOAD_RESULT_TABLE);
    uploadResultTable.addStyleName(ValoTheme.TABLE_BORDERLESS);
    uploadResultTable.addStyleName(ValoTheme.TABLE_SMALL);
    uploadResultTable.addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES);
    uploadResultTable.addStyleName("accordion-tab-table-style");

    populateUploadResultTable();
}
 
開發者ID:eclipse,項目名稱:hawkbit,代碼行數:19,代碼來源:UploadResultWindow.java

示例2: createRequiredComponents

import com.vaadin.ui.Table; //導入方法依賴的package包/類
private void createRequiredComponents() {
    uploadBtn = SPUIComponentProvider.getButton(UIComponentIdProvider.UPLOAD_BUTTON, SPUILabelDefinitions.SUBMIT,
            SPUILabelDefinitions.SUBMIT, ValoTheme.BUTTON_PRIMARY, false, null, SPUIButtonStyleTiny.class);
    uploadBtn.addClickListener(this);
    cancelBtn = SPUIComponentProvider.getButton(UIComponentIdProvider.UPLOAD_DISCARD_DETAILS_BUTTON,
            SPUILabelDefinitions.DISCARD, SPUILabelDefinitions.DISCARD, null, false, null,
            SPUIButtonStyleTiny.class);
    cancelBtn.addClickListener(this);

    uploadDetailsTable = new Table();
    uploadDetailsTable.addStyleName("artifact-table");
    uploadDetailsTable.setSizeFull();
    uploadDetailsTable.setId(UIComponentIdProvider.UPLOAD_ARTIFACT_DETAILS_TABLE);
    uploadDetailsTable.addStyleName(ValoTheme.TABLE_BORDERLESS);
    uploadDetailsTable.addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES);
    uploadDetailsTable.addStyleName(ValoTheme.TABLE_SMALL);

    setTableContainer();
    populateUploadDetailsTable();
}
 
開發者ID:eclipse,項目名稱:hawkbit,代碼行數:21,代碼來源:UploadConfirmationWindow.java

示例3: buildSelectedTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
private void buildSelectedTable() {

        selectedTable = new Table();
        selectedTable.setId(SPUIDefinitions.TWIN_TABLE_SELECTED_ID);
        selectedTable.setSelectable(true);
        selectedTable.setMultiSelect(true);
        selectedTable.setSortEnabled(false);
        selectedTable.addStyleName(ValoTheme.TABLE_NO_HORIZONTAL_LINES);
        selectedTable.addStyleName(ValoTheme.TABLE_NO_STRIPES);
        selectedTable.addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES);
        selectedTable.addStyleName(ValoTheme.TABLE_SMALL);
        selectedTable.addStyleName("dist_type_twin-table");
        selectedTable.setSizeFull();
        createSelectedTableContainer();
        selectedTable.setContainerDataSource(selectedTableContainer);
        addTooltTipToSelectedTable();
        selectedTable.setImmediate(true);
        selectedTable.setVisibleColumns(DIST_TYPE_NAME, DIST_TYPE_MANDATORY);
        selectedTable.setColumnHeaders(i18n.getMessage("header.dist.twintable.selected"), STAR);
        selectedTable.setColumnExpandRatio(DIST_TYPE_NAME, 0.75F);
        selectedTable.setColumnExpandRatio(DIST_TYPE_MANDATORY, 0.25F);
        selectedTable.setRequired(true);
    }
 
開發者ID:eclipse,項目名稱:hawkbit,代碼行數:24,代碼來源:CreateUpdateDistSetTypeLayout.java

示例4: initRelatedContentTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
protected Table initRelatedContentTable() {
  Table table = new Table();
  table.setWidth(100, UNITS_PERCENTAGE);
  table.addStyleName(ExplorerLayout.STYLE_RELATED_CONTENT_LIST);
  
  // Invisible by default, only shown when attachments are present
  table.setVisible(false);
  table.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);

  table.addContainerProperty("type", Embedded.class, null);
  table.setColumnWidth("type", 16);
  table.addContainerProperty("name", Component.class, null);
  
  relatedContentLayout.addComponent(table);
  return table;
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:17,代碼來源:HistoricTaskDetailPanel.java

示例5: createList

import com.vaadin.ui.Table; //導入方法依賴的package包/類
@Override
protected Table createList() {
  taskTable = new Table();
  taskTable.addStyleName(ExplorerLayout.STYLE_TASK_LIST);
  taskTable.addStyleName(ExplorerLayout.STYLE_SCROLLABLE);
  
  // Listener to change right panel when clicked on a task
  taskTable.addListener(getListSelectionListener());
  
  this.lazyLoadingQuery = createLazyLoadingQuery();
  this.taskListContainer = new LazyLoadingContainer(lazyLoadingQuery, 10);
  taskTable.setContainerDataSource(taskListContainer);
  
  // Create column header
  taskTable.addGeneratedColumn("icon", new ThemeImageColumnGenerator(Images.TASK_22));
  taskTable.setColumnWidth("icon", 22);
  
  taskTable.addContainerProperty("name", String.class, null);
  taskTable.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);
  
  return taskTable;
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:23,代碼來源:TaskPage.java

示例6: initAttachmentTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
protected void initAttachmentTable() {
  contentLayout = new VerticalLayout();
  addComponent(contentLayout);
  
  table = new Table();
  table.setWidth(100, UNITS_PERCENTAGE);
  table.addStyleName(ExplorerLayout.STYLE_RELATED_CONTENT_LIST);
  
  // Invisible by default, only shown when attachments are present
  table.setVisible(false);
  table.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);

  addContainerProperties();

  // Get the related content for this task
  refreshTaskAttachments();
  contentLayout.addComponent(table);
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:19,代碼來源:TaskRelatedContentComponent.java

示例7: createArtifactDetailsTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
private static Table createArtifactDetailsTable() {
    final Table detailsTable = new Table();
    detailsTable.addStyleName("sp-table");

    detailsTable.setImmediate(true);
    detailsTable.setSizeFull();

    detailsTable.setId(UIComponentIdProvider.UPLOAD_ARTIFACT_DETAILS_TABLE);
    detailsTable.addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES);
    detailsTable.addStyleName(ValoTheme.TABLE_SMALL);
    return detailsTable;
}
 
開發者ID:eclipse,項目名稱:hawkbit,代碼行數:13,代碼來源:ArtifactDetailsLayout.java

示例8: buildSourceTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
/**
*
*/
private void buildSourceTable() {

    sourceTable = new Table();
    sourceTable.setId(SPUIDefinitions.TWIN_TABLE_SOURCE_ID);
    sourceTable.setSelectable(true);
    sourceTable.setMultiSelect(true);
    sourceTable.addStyleName(ValoTheme.TABLE_NO_HORIZONTAL_LINES);
    sourceTable.addStyleName(ValoTheme.TABLE_NO_STRIPES);
    sourceTable.addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES);
    sourceTable.addStyleName(ValoTheme.TABLE_SMALL);
    sourceTable.setImmediate(true);
    sourceTable.setSizeFull();
    sourceTable.addStyleName("dist_type_twin-table");
    sourceTable.setSortEnabled(false);
    sourceTableContainer = new IndexedContainer();
    sourceTableContainer.addContainerProperty(DIST_TYPE_NAME, String.class, "");
    sourceTableContainer.addContainerProperty(DIST_TYPE_DESCRIPTION, String.class, "");
    sourceTable.setContainerDataSource(sourceTableContainer);

    sourceTable.setVisibleColumns(DIST_TYPE_NAME);
    sourceTable.setColumnHeaders(i18n.getMessage("header.dist.twintable.available"));
    sourceTable.setColumnExpandRatio(DIST_TYPE_NAME, 1.0F);
    getSourceTableData();
    addTooltip();
    sourceTable.select(sourceTable.firstItemId());
}
 
開發者ID:eclipse,項目名稱:hawkbit,代碼行數:30,代碼來源:CreateUpdateDistSetTypeLayout.java

示例9: createTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
private void createTable() {
    table = new Table();
    table.setSizeFull();
    table.setPageLength(SPUIDefinitions.ACCORDION_TAB_DETAILS_PAGE_LENGTH);
    // Build Style
    final StringBuilder style = new StringBuilder(ValoTheme.TABLE_COMPACT);
    style.append(' ');
    style.append(ValoTheme.TABLE_SMALL);
    style.append(' ');
    style.append(ValoTheme.TABLE_NO_VERTICAL_LINES);
    // Set style
    table.addStyleName(style.toString());
    table.addStyleName("accordion-tab-table-style");
    table.setImmediate(true);
}
 
開發者ID:eclipse,項目名稱:hawkbit,代碼行數:16,代碼來源:ConfirmationTab.java

示例10: addVariables

import com.vaadin.ui.Table; //導入方法依賴的package包/類
protected void addVariables() {
  Label header = new Label(i18nManager.getMessage(Messages.PROCESS_INSTANCE_HEADER_VARIABLES));
  header.addStyleName(ExplorerLayout.STYLE_H3);
  header.addStyleName(ExplorerLayout.STYLE_DETAIL_BLOCK);
  header.addStyleName(ExplorerLayout.STYLE_NO_LINE);
  panelLayout.addComponent(header);
  
  panelLayout.addComponent(new Label(" ", Label.CONTENT_XHTML));
  
  // variable sorting is done in-memory (which is ok, since normally there aren't that many vars)
  Map<String, Object> variables = new TreeMap<String, Object>(runtimeService.getVariables(processInstance.getId())); 
  
  if(variables.size() > 0) {
    
    Table variablesTable = new Table();
    variablesTable.setWidth(60, UNITS_PERCENTAGE);
    variablesTable.addStyleName(ExplorerLayout.STYLE_PROCESS_INSTANCE_TASK_LIST);
    
    variablesTable.addContainerProperty("name", String.class, null, i18nManager.getMessage(Messages.PROCESS_INSTANCE_VARIABLE_NAME), null, Table.ALIGN_LEFT);
    variablesTable.addContainerProperty("value", String.class, null, i18nManager.getMessage(Messages.PROCESS_INSTANCE_VARIABLE_VALUE), null, Table.ALIGN_LEFT);
    
    for (String variable : variables.keySet()) {
      Item variableItem = variablesTable.addItem(variable);
      variableItem.getItemProperty("name").setValue(variable);
      
      // Get string value to show
      String theValue = variableRendererManager.getStringRepresentation(variables.get(variable));
      variableItem.getItemProperty("value").setValue(theValue);
    }
    
    variablesTable.setPageLength(variables.size());
    panelLayout.addComponent(variablesTable);
  } else {
    Label noVariablesLabel = new Label(i18nManager.getMessage(Messages.PROCESS_INSTANCE_NO_VARIABLES));
    panelLayout.addComponent(noVariablesLabel);
  }
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:38,代碼來源:ProcessInstanceDetailPanel.java

示例11: addTableData

import com.vaadin.ui.Table; //導入方法依賴的package包/類
protected void addTableData() {
  LazyLoadingQuery lazyLoadingQuery = new TableDataQuery(tableName, managementService);
  LazyLoadingContainer lazyLoadingContainer = new LazyLoadingContainer(lazyLoadingQuery, 10);
  
  if (lazyLoadingContainer.size() > 0) {
    
    Table data = new Table();
    data.setContainerDataSource(lazyLoadingContainer);
    data.setEditable(false);
    data.setSelectable(true);
    data.setColumnReorderingAllowed(true);
    if (lazyLoadingQuery.size() < 10) {
      data.setPageLength(0);
    } else {
      data.setPageLength(10);
    }
    addDetailComponent(data);
    
    data.setWidth(100, UNITS_PERCENTAGE);
    data.setHeight(100, UNITS_PERCENTAGE);
    data.addStyleName(ExplorerLayout.STYLE_DATABASE_TABLE);
    setDetailExpandRatio(data, 1.0f);
    
    // Create column headers
    TableMetaData metaData = managementService.getTableMetaData(tableName);
    for (String columnName : metaData.getColumnNames()) {
      data.addContainerProperty(columnName, String.class, null);
    }
    
  } else {
    Label noDataLabel = new Label(i18nManager.getMessage(Messages.DATABASE_NO_ROWS));
    noDataLabel.addStyleName(Reindeer.LABEL_SMALL);
    addDetailComponent(noDataLabel);
    setDetailExpandRatio(noDataLabel, 1.0f);
  }
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:37,代碼來源:DatabaseDetailPanel.java

示例12: createList

import com.vaadin.ui.Table; //導入方法依賴的package包/類
@Override
protected Table createList() {
  final Table processDefinitionTable = new Table();
  processDefinitionTable.addStyleName(ExplorerLayout.STYLE_PROCESS_DEFINITION_LIST);
  
  // Set non-editable, selectable and full-size
  processDefinitionTable.setEditable(false);
  processDefinitionTable.setImmediate(true);
  processDefinitionTable.setSelectable(true);
  processDefinitionTable.setNullSelectionAllowed(false);
  processDefinitionTable.setSortDisabled(true);
  processDefinitionTable.setSizeFull();
  
  
  LazyLoadingQuery lazyLoadingQuery = new ProcessDefinitionListQuery(repositoryService);
  this.processDefinitionContainer = new LazyLoadingContainer(lazyLoadingQuery, 10);
  processDefinitionTable.setContainerDataSource(processDefinitionContainer);
  
  // Listener to change right panel when clicked on a task
  processDefinitionTable.addListener(new Property.ValueChangeListener() {
    private static final long serialVersionUID = 1L;

    public void valueChange(ValueChangeEvent event) {
      Item item = processDefinitionTable.getItem(event.getProperty().getValue());
      String processDefinitionId = (String) item.getItemProperty("id").getValue();
      showProcessDefinitionDetail(processDefinitionId);
    }
  });
  
  // Create columns
  processDefinitionTable.addGeneratedColumn("icon", new ThemeImageColumnGenerator(Images.PROCESS_22));
  processDefinitionTable.setColumnWidth("icon", 22);
  
  processDefinitionTable.addContainerProperty("name", String.class, null);
  processDefinitionTable.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);
  
  return processDefinitionTable;
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:39,代碼來源:ProcessDefinitionPage.java

示例13: buildTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
private Table buildTable() {
    final Table table = new Table() {
        @Override
        protected String formatPropertyValue(final Object rowId,
                final Object colId, final Property<?> property) {
            String result = super.formatPropertyValue(rowId, colId,
                    property);
            if (colId.equals("time")) {
                result = DATEFORMAT.format(((Date) property.getValue()));
            } else if (colId.equals("price")) {
                if (property != null && property.getValue() != null) {
                    return "$" + DECIMALFORMAT.format(property.getValue());
                } else {
                    return "";
                }
            }
            return result;
        }
    };
    table.setSizeFull();
    table.addStyleName(ValoTheme.TABLE_BORDERLESS);
    table.addStyleName(ValoTheme.TABLE_NO_HORIZONTAL_LINES);
    table.addStyleName(ValoTheme.TABLE_COMPACT);
    table.setSelectable(true);

    table.setColumnCollapsingAllowed(true);
    table.setColumnCollapsible("time", false);
    table.setColumnCollapsible("price", false);

    table.setColumnReorderingAllowed(true);
    table.setContainerDataSource(new TempTransactionsContainer(DashboardUI
            .getDataProvider().getRecentTransactions(200)));
    table.setSortContainerPropertyId("time");
    table.setSortAscending(false);

    table.setColumnAlignment("seats", Align.RIGHT);
    table.setColumnAlignment("price", Align.RIGHT);

    table.setVisibleColumns("time", "country", "city", "theater", "room",
            "title", "seats", "price");
    table.setColumnHeaders("Time", "Country", "City", "Theater", "Room",
            "Title", "Seats", "Price");

    table.setFooterVisible(true);
    table.setColumnFooter("time", "Total");

    table.setColumnFooter(
            "price",
            "$"
                    + DECIMALFORMAT.format(DashboardUI.getDataProvider()
                            .getTotalSum()));

    // Allow dragging items to the reports menu
    table.setDragMode(TableDragMode.MULTIROW);
    table.setMultiSelect(true);

    table.addActionHandler(new TransactionsActionHandler());

    table.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(final ValueChangeEvent event) {
            if (table.getValue() instanceof Set) {
                Set<Object> val = (Set<Object>) table.getValue();
                createReport.setEnabled(val.size() > 0);
            }
        }
    });
    table.setImmediate(true);

    return table;
}
 
開發者ID:mcollovati,項目名稱:vaadin-vertx-samples,代碼行數:72,代碼來源:TransactionsView.java

示例14: initSelectionTable

import com.vaadin.ui.Table; //導入方法依賴的package包/類
protected void initSelectionTable() {
  selectionTable = new Table();
  selectionTable.setSizeUndefined();
  selectionTable.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);
  selectionTable.setSelectable(true);
  selectionTable.setImmediate(true);
  selectionTable.setNullSelectionAllowed(false);
  selectionTable.setWidth(150, UNITS_PIXELS);
  selectionTable.setHeight(100, UNITS_PERCENTAGE);

  selectionTable.setCellStyleGenerator(new CellStyleGenerator() {
    private static final long serialVersionUID = 1L;
    public String getStyle(Object itemId, Object propertyId) {
      if("name".equals(propertyId)) {
        return ExplorerLayout.STYLE_RELATED_CONTENT_CREATE_LIST_LAST_COLUMN;
      }
      return null;
    }
  });

  selectionTable.addStyleName(ExplorerLayout.STYLE_RELATED_CONTENT_CREATE_LIST);

  selectionTable.addContainerProperty("type", Embedded.class, null);
  selectionTable.setColumnWidth("type", 22);
  selectionTable.addContainerProperty("name", String.class, null);

  // Listener to switch to the selected component
  selectionTable.addListener(new ValueChangeListener() {
    private static final long serialVersionUID = 1L;
    public void valueChange(ValueChangeEvent event) {
      String name = (String) event.getProperty().getValue();
      if (name != null) {
        currentSelection = name;
        currentComponent = components.get(name);
        selectedComponentLayout.removeComponent(selectedComponentLayout.getComponent(0, 0));
        if (currentComponent != null) {
          currentComponent.setSizeFull();
          selectedComponentLayout.addComponent(currentComponent, 0, 0);
          okButton.setEnabled(true);
        } else {
          okButton.setEnabled(false);
        }
      } 
    }
  });
  windowLayout.addComponent(selectionTable);
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:48,代碼來源:TabbedSelectionWindow.java

示例15: addTasks

import com.vaadin.ui.Table; //導入方法依賴的package包/類
protected void addTasks() {
  Label header = new Label(i18nManager.getMessage(Messages.PROCESS_INSTANCE_HEADER_TASKS));
  header.addStyleName(ExplorerLayout.STYLE_H3);
  header.addStyleName(ExplorerLayout.STYLE_DETAIL_BLOCK);
  header.addStyleName(ExplorerLayout.STYLE_NO_LINE);
  panelLayout.addComponent(header);
  
  panelLayout.addComponent(new Label("&nbsp;", Label.CONTENT_XHTML));
  
  Table taskTable = new Table();
  taskTable.addStyleName(ExplorerLayout.STYLE_PROCESS_INSTANCE_TASK_LIST);
  taskTable.setWidth(100, UNITS_PERCENTAGE);
  
  // Fetch all tasks
  List<HistoricTaskInstance> tasks = historyService.createHistoricTaskInstanceQuery()
    .processInstanceId(processInstance.getId())
    .orderByHistoricTaskInstanceEndTime().desc()
    .orderByHistoricActivityInstanceStartTime().desc()
    .list();
  
  if(tasks.size() > 0) {
    
    // Finished icon
    taskTable.addContainerProperty("finished", Component.class, null, "", null, Table.ALIGN_CENTER);
    taskTable.setColumnWidth("finished", 22);
    
    taskTable.addContainerProperty("name", String.class, null, i18nManager.getMessage(Messages.TASK_NAME),
            null, Table.ALIGN_LEFT);
    taskTable.addContainerProperty("priority", Integer.class, null, i18nManager.getMessage(Messages.TASK_PRIORITY),
            null, Table.ALIGN_LEFT);
    taskTable.addContainerProperty("assignee", Component.class, null, i18nManager.getMessage(Messages.TASK_ASSIGNEE),
            null, Table.ALIGN_LEFT);
    taskTable.addContainerProperty("dueDate", Component.class, null, i18nManager.getMessage(Messages.TASK_DUEDATE),
            null, Table.ALIGN_LEFT);
    taskTable.addContainerProperty("startDate", Component.class, null, i18nManager.getMessage(Messages.TASK_CREATE_TIME),
            null, Table.ALIGN_LEFT);
    taskTable.addContainerProperty("endDate", Component.class, null, i18nManager.getMessage(Messages.TASK_COMPLETE_TIME),
            null, Table.ALIGN_LEFT);
    
    panelLayout.addComponent(taskTable);
    panelLayout.setExpandRatio(taskTable, 1.0f);
    
    for(HistoricTaskInstance task : tasks) {
      addTaskItem(task, taskTable);
    }
    
    taskTable.setPageLength(taskTable.size());
  } else {
    // No tasks
    Label noTaskLabel = new Label(i18nManager.getMessage(Messages.PROCESS_INSTANCE_NO_TASKS));
    panelLayout.addComponent(noTaskLabel);
  }
}
 
開發者ID:logicalhacking,項目名稱:SecureBPMN,代碼行數:54,代碼來源:ProcessInstanceDetailPanel.java


注:本文中的com.vaadin.ui.Table.addStyleName方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。