text:
<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>AdminLTE 2 | Documentation</title>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">

    <link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">

    <link rel="stylesheet" href="../dist/css/AdminLTE.min.css">
    <link rel="stylesheet" href="../dist/css/skins/_all-skins.min.css">
    <link rel="stylesheet" href="style.css">

          ALT

          AdminLTE

            Toggle navigation

Almsaeed Studio

Premium Templates

TABLE OF CONTENTS

 介绍

 下载

 依赖

 建议

 布局

 Javascript 配置

               组件

Main Header

Sidebar

Control Sidebar

Info Box

Box

Direct Chat

 插件

 浏览器支持

 升级导航

 二次开发

 常见问题

 许可协议

            AdminLTE 中文文档
            当前版本 2.3.0

 首页

文档

介绍

    AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题。 AdminLTE作为一个完全响应式管理模板,完全基于Bootstrap3框架。高度可定制的,易于使用。适合从小型移动设备到大型台式机很多的屏幕分辨率。本文档将执导你安装并使用adminLTE。

下载

    AdminLTE提供了2种不同的下载方式,请根据自己的能力和使用场景选择。

压缩版

编译后的用于生产环境的版本。如果你不需要修改AdminLTE的less文件请下载此版本。

           Download

源码

包括编译后的css文件在内的所有文件。如果你需要个性化的模板请下载此版本。需要LESS编译器

           Download

源码包的文件层次

    AdminLTE/
    ├── dist/
    │   ├── CSS/
    │   ├── JS
    │   ├── img
    ├── build/
    │   ├── less/
    │   │   ├── AdminLTE的Less文件
    │   └── Bootstrap-less/ (仅供参考.未做任何修改)
    │       ├── mixins/
    │       ├── variables.less
    │       ├── mixins.less
    └── plugins/
    ├── 所有插件的CSS和JS文件

依赖

AdminLTE 依赖于两大主流框架。
    通过上面途径下载的AdminLTE已包含全部依赖文件,所以不用手动下载。

Bootstrap 3

jQuery 1.11+

其他插件请点这里查看

建议

    在查看那些狂拽吊炸天的主题前,请阅读下面提示来让你对AdminLTE更熟悉:

AdminLTE 是基于Bootstrap 3制作的。 如果你对Bootstrap不熟悉,请前往他们的官网并阅读文档。AdminLTE只是将所有的Bootstrap组件风格进行修饰。如果你阅读过Bootstrap的文档,那你一定对使用AdminLTE如鱼得水。

浏览一遍所有页面。 大部分模板例子页面提供了如何快速创建该组件的方法,这能让你在之后使用AdminLTE时进展飞速。

读完文档。 我们竭尽全力让你能更流畅的学会AdminLTE。其中文档和支持至关重要,如果你觉得文档漏掉了什么东西,请务必告诉我们。

使用 LESS构建. AdminLTE使用LESS编译以便于更加轻松去定制和使用。对于曾学过CSS或SASS的人,LESS十分简单。LESS对于码农来说并非不可获取,但若学会则受益颇多。

上GitHub.在AdminLTE的仓库中提问题、提需求、贡献代码。

    Note: LESS大法好.

布局

布局主要由四部分组成

Wrapper .wrapper. 一个将整张页面包装的div

Main Header .main-header. 包括Logo和导航条

Sidebar .sidebar-wrapper.包括用户面板和菜单

Content.content-wrapper. 包括页面标题和内容

提示!

如果你是从头开始做网站,请从starter 页面开始

布局选项

AdminLTE 2.0为你的布局提供了一些选项.每种样式都可以被添加到body上以达到设计目标.

自适应布局: 使用样式.fixed来获得一个自适应的页头和工具栏.

折叠工具栏: 使用样式 .sidebar-collapse 来将工具栏折叠起来

盒式布局: 使用样式 .layout-boxed 会使一个不论浏览器宽度为多少Wrapper都只有1250px.

顶部导航: 使用样式 .layout-top-nav 会移除 sidebar ,将所有的链接放在页面顶部.

Note: 你无法同时使用盒式布局和自适应布局.其他布局可以一起使用.

皮肤

皮肤可以在 dist/css/skins 文件夹内找到,选择一款你喜爱的皮肤并将它的样式添加到body上来改变模板的外观.这里是可用皮肤列表:

          皮肤样式
          预览

          skin-blue

          skin-blue-light

          skin-yellow

          skin-yellow-light

          skin-green

          skin-green-light

          skin-purple

          skin-purple-light

          skin-red

          skin-red-light

          skin-black

          skin-black-light

AdminLTE Javascript 配置

可以通过以下方法之一修改 AdminLTE 的 app.js 文件的配置

修改 app.js 文件

    在Javascript文件内,修改 $.AdminLTE.options对象去适配

Within the main Javascript file, modify the $.AdminLTE.options 来适配你的情况.

定义 AdminLTEOptions

除此之外, 你可以定义一个叫做AdminLTEOptions 的全局变量 并且在你加载app.js前初始化它

例子

<script>
      var AdminLTEOptions = {
      //Enable sidebar expand on hover effect for sidebar mini
      //This option is forced to true if both the fixed layout and sidebar mini
      //are used together
      sidebarExpandOnHover: true,
      //BoxRefresh Plugin
      enableBoxRefresh: true,
      //Bootstrap.js tooltip
      enableBSToppltip: true
      };
      </script>
      <script src="dist/js/app.js" type="text/javascript"></script>

可选的 AdminLTE 配置

{
      // 在导航条菜单添加 slimscroll(虚拟滚动条)
      // 这需要你在每张页面加载app.js前加载slimscroll插件
      navbarMenuSlimscroll: true,
      navbarMenuSlimscrollWidth: "3px", //虚拟滚动条宽度
      navbarMenuHeight: "200px", //滚动条所在的菜单的高度
      //全局动画事件的速度,如盒子关闭/扩展、工具栏下滑、上滑.可传入数字(单位为毫秒)
      //'fast', 'normal', or 'slow'
      animationSpeed: 500,
      //左侧工具栏切换(显示隐藏)按钮选择器
      sidebarToggleSelector: "[data-toggle='offcanvas']",
      //激活工具栏切换按钮
      sidebarPushMenu: true,
      //自适应布局(fixed)下,激活工具栏虚拟滚动条 (需要 SlimScroll 插件)
      sidebarSlimScroll: true,
      //允许鼠标悬浮工具栏mini按钮时弹出子级菜单
      //在自适应布局(fixed)且工具栏已最小化情况下,选项强行为true
      sidebarExpandOnHover: false,
      //BoxRefresh Plugin
      enableBoxRefresh: true,
      //Bootstrap.js tooltip
      enableBSToppltip: true,
      BSTooltipSelector: "[data-toggle='tooltip']",
      // 开启快速触屏.使用Fastclick.js去除掉移动端页面300ms延迟现象
      //使移动端设备体验更流畅. 如果你想开启本选项,
      //请确认你在加载app.js前加载了Fastclick.js
      enableFastclick: true,
      //控制工具栏配置
      enableControlSidebar: true,
      controlSidebarOptions: {
      //Which button should trigger the open/close event
      toggleBtnSelector: "[data-toggle='control-sidebar']",
      //The sidebar selector
      selector: ".control-sidebar",
      //Enable slide over content
      slide: true
      },
      //盒子插件.开启本项配置来允许盒子最小化或移除
      enableBoxWidget: true,
      //盒子插件配置
      boxWidgetOptions: {
      boxWidgetIcons: {
      //Collapse icon
      collapse: 'fa-minus',
      //Open icon
      open: 'fa-plus',
      //Remove icon
      remove: 'fa-times'
      },
      boxWidgetSelectors: {
      //Remove button selector
      remove: '[data-widget="remove"]',
      //Collapse button selector
      collapse: '[data-widget="collapse"]'
      }
      },
      //聊天框插件选项
      directChat: {
      //Enable direct chat by default
      enable: true,
      //The button to open and close the chat contacts pane
      contactToggleSelector: '[data-widget="chat-pane-toggle"]'
      },
      //定义网站全局颜色别名
      colors: {
      lightBlue: "#3c8dbc",
      red: "#f56954",
      green: "#00a65a",
      aqua: "#00c0ef",
      yellow: "#f39c12",
      blue: "#0073b7",
      navy: "#001F3F",
      teal: "#39CCCC",
      olive: "#3D9970",
      lime: "#01FF70",
      orange: "#FF851B",
      fuchsia: "#F012BE",
      purple: "#8E24AA",
      maroon: "#D81B60",
      black: "#222222",
      gray: "#d2d6de"
      },
      //bootstrap使用的标准屏幕宽度,如果你在.less中修改了这些变量,请在配置文件中也修改
      screenSizes: {
      xs: 480,
      sm: 768,
      md: 992,
      lg: 1200
      }
      }

Components

谨记!

      AdminLTE 使用了 Bootstrap 3 的所有组件. 通过 Bootstrap 中文文档 查看本文档未提到 的组件使用方法将使你有个良好的起步.

提示!

      如果你在阅览示例页面时想要引用一个组件,右键点击组件并选择检查元素来获取HTML结构比搜索页面速度快的多.

Main Header

Main Header 包含Logo和导航条.AdminLTE的导航条结构与Bootstrap的略有不同,因为AdminLTE提供了Bootstrap不具有的组件.
    这里有2种方法构建导航条.下面是普通导航条的例子,之后我们会提供 top nav 布局的导航条例子.

      Main Header Example

        AdminLTE

            Toggle navigation

                  4

You have 4 messages

                            Support Team
                             5 mins

Why not buy a new awesome theme?

See All Messages

                  10

You have 10 notifications

                           5 new members joined today

View all

                  9

You have 9 tasks

                            Design some buttons
                            20%

                              20% Complete

                    View all tasks

                  Alexander Pierce

                      Alexander Pierce - Web Developer
                      Member since Nov. 2012

                      Followers

                      Sales

                      Friends

                      Profile

                      Sign out

<header class="main-header">
  <a href="../../index2.html" class="logo">
    <!-- LOGO -->
    AdminLTE
  </a>
  <!-- Header Navbar: style can be found in header.less -->
  <nav class="navbar navbar-static-top" role="navigation">
    <!-- Navbar Right Menu -->
    <div class="navbar-custom-menu">
      <ul class="nav navbar-nav">
        <!-- Messages: style can be found in dropdown.less-->
        <li class="dropdown messages-menu">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            <i class="fa fa-envelope-o"></i>
            <span class="label label-success">4</span>
          </a>
          <ul class="dropdown-menu">
            <li class="header">You have 4 messages</li>
            <li>
              <!-- inner menu: contains the actual data -->
              <ul class="menu">
                <li><!-- start message -->
                  <a href="#">
                    <div class="pull-left">
                      <img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
                    </div>
                    <h4>
                      Sender Name
                      <small><i class="fa fa-clock-o"></i> 5 mins</small>
                    </h4>
                    <p>Message Excerpt</p>
                  </a>
                </li><!-- end message -->
                ...
              </ul>
            </li>
            <li class="footer"><a href="#">See All Messages</a></li>
          </ul>
        </li>
        <!-- Notifications: style can be found in dropdown.less -->
        <li class="dropdown notifications-menu">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            <i class="fa fa-bell-o"></i>
            <span class="label label-warning">10</span>
          </a>
          <ul class="dropdown-menu">
            <li class="header">You have 10 notifications</li>
            <li>
              <!-- inner menu: contains the actual data -->
              <ul class="menu">
                <li>
                  <a href="#">
                    <i class="ion ion-ios-people info"></i> Notification title
                  </a>
                </li>
                ...
              </ul>
            </li>
            <li class="footer"><a href="#">View all</a></li>
          </ul>
        </li>
        <!-- Tasks: style can be found in dropdown.less -->
        <li class="dropdown tasks-menu">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            <i class="fa fa-flag-o"></i>
            <span class="label label-danger">9</span>
          </a>
          <ul class="dropdown-menu">
            <li class="header">You have 9 tasks</li>
            <li>
              <!-- inner menu: contains the actual data -->
              <ul class="menu">
                <li><!-- Task item -->
                  <a href="#">
                    <h3>
                      Design some buttons
                      <small class="pull-right">20%</small>
                    </h3>
                    <div class="progress xs">
                      <div class="progress-bar progress-bar-aqua" style="width: 20%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
                        <span class="sr-only">20% Complete</span>
                      </div>
                    </div>
                  </a>
                </li><!-- end task item -->
                ...
              </ul>
            </li>
            <li class="footer">
              <a href="#">View all tasks</a>
            </li>
          </ul>
        </li>
        <!-- User Account: style can be found in dropdown.less -->
        <li class="dropdown user user-menu">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            <img src="dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
            <span class="hidden-xs">Alexander Pierce</span>
          </a>
          <ul class="dropdown-menu">
            <!-- User image -->
            <li class="user-header">
              <img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
              <p>
                Alexander Pierce - Web Developer
                <small>Member since Nov. 2012</small>
              </p>
            </li>
            <!-- Menu Body -->
            <li class="user-body">
              <div class="col-xs-4 text-center">
                <a href="#">Followers</a>
              </div>
              <div class="col-xs-4 text-center">
                <a href="#">Sales</a>
              </div>
              <div class="col-xs-4 text-center">
                <a href="#">Friends</a>
              </div>
            </li>
            <!-- Menu Footer-->
            <li class="user-footer">
              <div class="pull-left">
                <a href="#" class="btn btn-default btn-flat">Profile</a>
              </div>
              <div class="pull-right">
                <a href="#" class="btn btn-default btn-flat">Sign out</a>
              </div>
            </li>
          </ul>
        </li>
      </ul>
    </div>
  </nav>
</header>

Top Nav Layout. Main Header Example.

谨记!

如果使用这个Header样式, 你一定要在body上添加 layout-top-nav样式.

      Top Nav Example

              AdminLTE
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">

              </button>

Link (current)

Link

                  Dropdown

Action

Another action

Something else here

Separated link

One more separated link

              <form class="navbar-form navbar-left" role="search">

                  <input type="text" class="form-control" id="navbar-search-input" placeholder="Search">

              </form>

Link

                  Dropdown

Action

Another action

Something else here

Separated link

<header class="main-header">
  <nav class="navbar navbar-static-top">
    <div class="container-fluid">
    <div class="navbar-header">
      <a href="../../index2.html" class="navbar-brand"><b>Admin</b>LTE</a>
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
        <i class="fa fa-bars"></i>
      </button>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="navbar-collapse">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" id="navbar-search-input" placeholder="Search">
        </div>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
  </nav>
</header>

Sidebar

    本页面左侧的 Sidebar 已经提供了一个很好例子.下面是如何构建 Sidebar.

<div class="main-sidebar">
  <!-- Inner sidebar -->
  <div class="sidebar">
    <!-- user panel (Optional) -->
    <div class="user-panel">
      <div class="pull-left image">
        <img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
      </div>
      <div class="pull-left info">
        <p>User Name</p>

        <a href="#"><i class="fa fa-circle text-success"></i> Online</a>
      </div>
    </div><!-- /.user-panel -->

    <!-- Search Form (Optional) -->
    <form action="#" method="get" class="sidebar-form">
      <div class="input-group">
        <input type="text" name="q" class="form-control" placeholder="Search...">
        <span class="input-group-btn">
          <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i></button>
        </span>
      </div>
    </form><!-- /.sidebar-form -->

    <!-- Sidebar Menu -->
    <ul class="sidebar-menu">
      <li class="header">HEADER</li>
      <!-- Optionally, you can add icons to the links -->
      <li class="active"><a href="#"><span>Link</span></a><</li>
      <li><a href="#"><span>Another Link</span></a></li>
      <li class="treeview">
        <a href="#"><span>Multilevel</span> <i class="fa fa-angle-left pull-right"></i></a>
        <ul class="treeview-menu">
          <li><a href="#">Link in level 2</a></li>
          <li><a href="#">Link in level 2</a></li>
        </ul>
      </li>
    </ul><!-- /.sidebar-menu -->

  </div><!-- /.sidebar -->
</div><!-- /.main-sidebar -->

Control Sidebar

  Control sidebar 是右侧的工具栏.它可以用来实现很多功能且易于创建.Control Sidebar 有2中显示/隐藏样式.第一种是直接在正文上滑入滑出.
  第二种是将正文向左侧推出一段距离来为 Control Sidebar 制造空间.不论哪种方式都可以通过Javascript options配置.
  将以下代码放在.wrapper内执行.我更推荐将Control Sidebar代码放在Footer后面.

Dark Sidebar 代码

<!-- The Right Sidebar -->
<aside class="control-sidebar control-sidebar-dark">
  <!-- Content of the sidebar goes here -->
</aside>
<!-- The sidebar's background -->
<!-- This div must placed right after the sidebar for it to work-->
<div class="control-sidebar-bg"></div>

Light Sidebar 代码

<!-- The Right Sidebar -->
<aside class="control-sidebar control-sidebar-light">
  <!-- Content of the sidebar goes here -->
</aside>
<!-- The sidebar's background -->
<!-- This div must placed right after the sidebar for it to work-->
<div class="control-sidebar-bg"></div>

一旦创建了Control Sidebar,你需要一个切换按钮来开关它.在任意一个button上添加 data-toggle="control-sidebar"来将它转换为控制Control Sidebar切换的开关.

Toggle Button 例子

  <button class="btn btn-primary" data-toggle="control-sidebar">Toggle Right Sidebar</button>

Sidebar Toggle 代码

<button class="btn btn-default" data-toggle="control-sidebar">Toggle Right Sidebar</button>

Info Box

Info boxes 是用来展示统计信息的. 这里有两种 info boxes.

第一种 Info Boxes

          Messages
          1,410

          Bookmarks
          410

          Uploads
          13,648

          Likes
          93,139

代码

<div class="info-box">
  <!-- Apply any bg-* class to to the icon to color it -->
  <span class="info-box-icon bg-red"><i class="fa fa-star-o"></i></span>
  <div class="info-box-content">
    <span class="info-box-text">Likes</span>
    <span class="info-box-number">93,139</span>
  </div><!-- /.info-box-content -->
</div><!-- /.info-box -->

第二种 Info Boxes

          Bookmarks
          41,410

            70% Increase in 30 Days

          Likes
          41,410

            70% Increase in 30 Days

          Events
          41,410

            70% Increase in 30 Days

          Comments
          41,410

            70% Increase in 30 Days

代码

<!-- Apply any bg-* class to to the info-box to color it -->
<div class="info-box bg-red">
  <span class="info-box-icon"><i class="fa fa-comments-o"></i></span>
  <div class="info-box-content">
    <span class="info-box-text">Likes</span>
    <span class="info-box-number">41,410</span>
    <!-- The progress section is optional -->
    <div class="progress">
      <div class="progress-bar" style="width: 70%"></div>
    </div>
    <span class="progress-description">
      70% Increase in 30 Days
    </span>
  </div><!-- /.info-box-content -->
</div><!-- /.info-box -->

The only thing you need to change to alternate between these style is change the placement of the bg-* class. For the
    first style apply any bg-* class to the icon itself. For the other style, apply the bg-* class to the info-box div.

Box

Box 组件是整个AdminLTE最常使用的组件.大到图表,小到文字你都可以使用它来展示.接下来,我们将介绍它的每种风格.

Default Box Markup

Default Box 例子

        Label

      The body of the box

      The footer of the box

<div class="box">
  <div class="box-header with-border">
    <h3 class="box-title">Default Box Example</h3>
    <div class="box-tools pull-right">
      <!-- Buttons, labels, and many other things can be placed here! -->
      <!-- Here is a label for example -->
      <span class="label label-primary">Label</span>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
  <div class="box-footer">
    The footer of the box
  </div><!-- box-footer -->
</div><!-- /.box -->

Box Variants

你可以添加上下文Class 来修改box的样式.

Default Box 例子

          The body of the box

Primary Box 例子

          The body of the box

Info Box 例子

          The body of the box

Warning Box 例子

          The body of the box

Success Box 例子

          The body of the box

Danger Box 例子

          The body of the box

<div class="box box-default">...</div>
<div class="box box-primary">...</div>
<div class="box box-info">...</div>
<div class="box box-warning">...</div>
<div class="box box-success">...</div>
<div class="box box-danger">...</div>

Solid Box

Solid Boxes 也是可以选择展示样式的.你同样只需要加入上下文Class就可以为 Solid Box 组件添加样式.

Default Solid Box 例子

          The body of the box

Primary Solid Box 例子

          The body of the box

Info Solid Box 例子

          The body of the box

Warning Solid Box 例子

          The body of the box

Success Solid Box 例子

          The body of the box

Danger Solid Box 例子

          The body of the box

<div class="box box-solid box-default">...</div>
<div class="box box-solid box-primary">...</div>
<div class="box box-solid box-info">...</div>
<div class="box box-solid box-warning">...</div>
<div class="box box-solid box-success">...</div>
<div class="box box-solid box-danger">...</div>

Box Tools

Boxes 可以添加一些工具来提供特别的事件和简单的信息.下面一些例子就在Box的头部使用了多种AdminLTE组件.

AdminLTE 的 data-widget 属性为 boxes 提供了伸缩、删除、刷新(需要加载artTemplate)功能.这些工具按钮应被放在box的头部

<!-- This will cause the box to be removed when clicked -->
<button class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
<!-- This will cause the box to collapse when clicked -->
<button class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse"><i class="fa fa-minus"></i></button>

Collapsable & Expandable

            <button class="btn btn-box-tool" data-widget="collapse"></button>

          The body of the box

<div class="box box-default">
  <div class="box-header with-border">
    <h3 class="box-title">Collapsable</h3>
    <div class="box-tools pull-right">
      <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
</div><!-- /.box -->

Removable

            <button class="btn btn-box-tool" data-widget="remove"></button>

          The body of the box

<div class="box box-default">
  <div class="box-header with-border">
    <h3 class="box-title">Removable</h3>
    <div class="box-tools pull-right">
      <button class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
</div><!-- /.box -->

Refreshable

            <button type="button" class="btn btn-box-tool refresh-btn"></button>

          The body of the box

<div class="box box-default collapsed-box">
  <div class="box-header with-border">
    <h3 class="box-title">Expandable</h3>
    <div class="box-tools pull-right">
      <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
</div><!-- /.box -->

我们可以添加标签、徽章、分页、小提示、输入框等很多box工具.下面是一些例子:

Labels

            Some Label

          The body of the box

<div class="box box-default">
  <div class="box-header with-border">
    <h3 class="box-title">Labels</h3>
    <div class="box-tools pull-right">
      <span class="label label-default">8 New Messages</span>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
</div><!-- /.box -->

Input

              <input type="text" class="form-control input-sm" placeholder="Search...">

          The body of the box

<div class="box box-default">
  <div class="box-header with-border">
    <h3 class="box-title">Input</h3>
    <div class="box-tools pull-right">
      <div class="has-feedback">
        <input type="text" class="form-control input-sm" placeholder="Search...">
        <span class="glyphicon glyphicon-search form-control-feedback"></span>
      </div>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
</div><!-- /.box -->

Tootips on buttons

            <button class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse"></button>
            <button class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove"></button>

          The body of the box

<div class="box box-default">
  <div class="box-header with-border">
    <h3 class="box-title">Tooltips on buttons</h3>
    <div class="box-tools pull-right">
      <button class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse"><i class="fa fa-minus"></i></button>
      <button class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
    </div><!-- /.box-tools -->
  </div><!-- /.box-header -->
  <div class="box-body">
    The body of the box
  </div><!-- /.box-body -->
</div><!-- /.box -->

    如果你在app.js加载后才将box添加到页面中,当你需要使用拉伸/删除功能时,你需要通过调用.activateBox()方法来激活box:

<script>
    $("#box-widget").activateBox();
</script>

Loading States

Loading state

          The body of the box

Loading state (.box-solid)

          The body of the box

    只需要将以下代码放到.box结尾前就可以模拟加载状态

<div class="overlay">
  <i class="fa fa-refresh fa-spin"></i>
</div>

Direct Chat

Direct Chat 是在box组件基础上创建而成的优美得聊天界面.这个组件由一个消息窗格(必需)和一个联系人窗格(可选)组成.示例:

Direct Chat

            3
            <button class="btn btn-box-tool" data-widget="collapse"></button>
            <button class="btn btn-box-tool" data-toggle="tooltip" title="Contacts" data-widget="chat-pane-toggle"></button>
            <button class="btn btn-box-tool" data-widget="remove"></button>

                Alexander Pierce
                23 Jan 2:00 pm

                Is this template really for free? That's unbelievable!

                Sarah Bullock
                23 Jan 2:05 pm

                You better believe it!

                      Count Dracula
                      2/28/2015

                    How have you been? I was...

          <form action="#" method="post">

              <input type="text" name="message" placeholder="Type Message ..." class="form-control">

                <button type="button" class="btn btn-primary btn-flat">Send</button>

          </form>

Direct Chat

            3
            <button class="btn btn-box-tool" data-widget="collapse"></button>
            <button class="btn btn-box-tool" data-toggle="tooltip" title="Contacts" data-widget="chat-pane-toggle"></button>
            <button class="btn btn-box-tool" data-widget="remove"></button>

                Alexander Pierce
                23 Jan 2:00 pm

                Is this template really for free? That's unbelievable!

                Sarah Bullock
                23 Jan 2:05 pm

                You better believe it!

                      Count Dracula
                      2/28/2015

                    How have you been? I was...

          <form action="#" method="post">

              <input type="text" name="message" placeholder="Type Message ..." class="form-control">

                <button type="button" class="btn btn-success btn-flat">Send</button>

          </form>

Direct Chat

            3
            <button class="btn btn-box-tool" data-widget="collapse"></button>
            <button class="btn btn-box-tool" data-toggle="tooltip" title="Contacts" data-widget="chat-pane-toggle"></button>
            <button class="btn btn-box-tool" data-widget="remove"></button>

                Alexander Pierce
                23 Jan 2:00 pm

                Is this template really for free? That's unbelievable!

                Sarah Bullock
                23 Jan 2:05 pm

                You better believe it!

                      Count Dracula
                      2/28/2015

                    How have you been? I was...

          <form action="#" method="post">

              <input type="text" name="message" placeholder="Type Message ..." class="form-control">

                <button type="button" class="btn btn-warning btn-flat">Send</button>

          </form>

Direct Chat

            3
            <button class="btn btn-box-tool" data-widget="collapse"></button>
            <button class="btn btn-box-tool" data-toggle="tooltip" title="Contacts" data-widget="chat-pane-toggle"></button>
            <button class="btn btn-box-tool" data-widget="remove"></button>

                Alexander Pierce
                23 Jan 2:00 pm

                Is this template really for free? That's unbelievable!

                Sarah Bullock
                23 Jan 2:05 pm

                You better believe it!

                      Count Dracula
                      2/28/2015

                    How have you been? I was...

          <form action="#" method="post">

              <input type="text" name="message" placeholder="Type Message ..." class="form-control">

                <button type="button" class="btn btn-danger btn-flat">Send</button>

          </form>

Direct Chat 代码

<!-- Construct the box with style you want. Here we are using box-danger -->
<!-- Then add the class direct-chat and choose the direct-chat-* contexual class -->
<!-- The contextual class should match the box, so we are using direct-chat-danger -->
<div class="box box-danger direct-chat direct-chat-danger">
  <div class="box-header with-border">
    <h3 class="box-title">Direct Chat</h3>
    <div class="box-tools pull-right">
      <span data-toggle="tooltip" title="3 New Messages" class="badge bg-red">3</span>
      <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
      <!-- In box-tools add this button if you intend to use the contacts pane -->
      <button class="btn btn-box-tool" data-toggle="tooltip" title="Contacts" data-widget="chat-pane-toggle"><i class="fa fa-comments"></i></button>
      <button class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
    </div>
  </div><!-- /.box-header -->
  <div class="box-body">
    <!-- Conversations are loaded here -->
    <div class="direct-chat-messages">
      <!-- Message. Default to the left -->
      <div class="direct-chat-msg">
        <div class="direct-chat-info clearfix">
          <span class="direct-chat-name pull-left">Alexander Pierce</span>
          <span class="direct-chat-timestamp pull-right">23 Jan 2:00 pm</span>
        </div><!-- /.direct-chat-info -->
        <img class="direct-chat-img" src="../dist/img/user1-128x128.jpg" alt="message user image"><!-- /.direct-chat-img -->
        <div class="direct-chat-text">
          Is this template really for free? That's unbelievable!
        </div><!-- /.direct-chat-text -->
      </div><!-- /.direct-chat-msg -->

      <!-- Message to the right -->
      <div class="direct-chat-msg right">
        <div class="direct-chat-info clearfix">
          <span class="direct-chat-name pull-right">Sarah Bullock</span>
          <span class="direct-chat-timestamp pull-left">23 Jan 2:05 pm</span>
        </div><!-- /.direct-chat-info -->
        <img class="direct-chat-img" src="../dist/img/user3-128x128.jpg" alt="message user image"><!-- /.direct-chat-img -->
        <div class="direct-chat-text">
          You better believe it!
        </div><!-- /.direct-chat-text -->
      </div><!-- /.direct-chat-msg -->
    </div><!--/.direct-chat-messages-->

    <!-- Contacts are loaded here -->
    <div class="direct-chat-contacts">
      <ul class="contacts-list">
        <li>
          <a href="#">
            <img class="contacts-list-img" src="../dist/img/user1-128x128.jpg" alt="Contact Avatar">
            <div class="contacts-list-info">
              <span class="contacts-list-name">
                Count Dracula
                <small class="contacts-list-date pull-right">2/28/2015</small>
              </span>
              <span class="contacts-list-msg">How have you been? I was...</span>
            </div><!-- /.contacts-list-info -->
          </a>
        </li><!-- End Contact Item -->
      </ul><!-- /.contatcts-list -->
    </div><!-- /.direct-chat-pane -->
  </div><!-- /.box-body -->
  <div class="box-footer">
    <div class="input-group">
      <input type="text" name="message" placeholder="Type Message ..." class="form-control">
      <span class="input-group-btn">
        <button type="button" class="btn btn-danger btn-flat">Send</button>
      </span>
    </div>
  </div><!-- /.box-footer-->
</div><!--/.direct-chat -->

当然,你也可以通过添加solid-box样式来创建一个Solid Box样式的Direct Chat.这里有一组例子:

Direct Chat in a Solid Box

            3
            <button class="btn btn-box-tool" data-widget="collapse"></button>
            <button class="btn btn-box-tool" data-toggle="tooltip" title="Contacts" data-widget="chat-pane-toggle"></button>
            <button class="btn btn-box-tool" data-widget="remove"></button>

                Alexander Pierce
                23 Jan 2:00 pm

                Is this template really for free? That's unbelievable!

                Sarah Bullock
                23 Jan 2:05 pm

                You better believe it!

                      Count Dracula
                      2/28/2015

                    How have you been? I was...

          <form action="#" method="post">

              <input type="text" name="message" placeholder="Type Message ..." class="form-control">

                <button type="button" class="btn btn-primary btn-flat">Send</button>

          </form>

Direct Chat in a Solid Box

            3
            <button class="btn btn-box-tool" data-widget="collapse"></button>
            <button class="btn btn-box-tool" data-toggle="tooltip" title="Contacts" data-widget="chat-pane-toggle"></button>
            <button class="btn btn-box-tool" data-widget="remove"></button>

                Alexander Pierce
                23 Jan 2:00 pm

                Is this template really for free? That's unbelievable!

                Sarah Bullock
                23 Jan 2:05 pm

                You better believe it!

                      Count Dracula
                      2/28/2015

                    How have you been? I was...

          <form action="#" method="post">

              <input type="text" name="message" placeholder="Type Message ..." class="form-control">

                <button type="button" class="btn btn-info btn-flat">Send</button>

          </form>

插件

AdminLTE 使用了下面的插件. 如果想查看文档、更新、使用许可信息,请前往下面地址.

表格

ChartJS

Echart

表单

Bootstrap Slider

Ion Slider

Date Picker

Date Range Picker

Color Picker

Time Picker

iCheck

Input Mask

编辑器

Bootstrap WYSIHTML5

UEditor

其他

DataTables

Full Calendar

jQuery UI

jQuery Knob

jVector Map

Slim Scroll

Pace

artTemplate

浏览器支持

AdminLTE 支持以下浏览器:

IE9+

Firefox (latest)

Safari (latest)

Chrome (latest)

Opera (latest)

Note: IE9 不支持 transitions 和 animations(都是CSS3的). AdminLTE可以在IE9下运行,但不会出现这2个的CSS效果.

更新执导

因本版本已经是2.3.0,故以下部分不翻译了

To upgrade from version 1.x to the lateset version, follow this guide.

New Files

Make sure you update all CSS and JS files that are related to AdminLTE. Otherwise, the layout will not
    function properly. Most important files are AdminLTE.css, skins CSS files, and app.js.

Layout Changes

The .wrapper div must be placed immediately after the body tag rather than after the header

Change the .header div to .main-header <div class="main-header">

Change the .right-side class to .content-wrapper <div class="content-wrapper">

Change the .left-side class to .main-sidebar <div class="main-sidebar">

In the navbar, change .navbar-right to .navbar-custom-menu <div class="navbar-custom-menu">

Navbar Custom Dropdown Menus

The icons in the notification menu do not need bg-* classes. They should be replaced with contextual text color class such as text-aqua or text-red.

Login, Registration and Lockscreen Pages

There are major changes to the HTML markup and style to these pages. The best way is to copy the page's code and customize it.

And you should be set to go!

Mailbox

Mailbox got an upgrade to include three different views. The views are inbox, read mail, and compose new email. To use these views,
    you should use the provided HTML files in the pages/mailbox folder.

Note: the old mailbox layout has been deprecated in favor of the new one and will be removed by the next release.

二次开发

多亏了众多adminLTE使用者, 才有了众多整合了后端的adminLTE模板.以下是其中几款:

Persian RTL by Mohammad Sharifi

Yii 2 by Tobias Munk

Laravel by Arjay Angeles

Laravel 5 package by Sergi Tur Badenas

Symfony by Marc Bach

Rails gems: adminlte2-rails by Nicolas Besnard and lte-rails (using AdminLTE sources) by Carlos at RacketLogger

Note: these implementations are not supported by Almsaeed Studio. However,
    they do provide a good example of how to integrate AdminLTE into different frameworks. For the latest release
    of AdminLTE, please visit our repository or website

FAQ

Can AdminLTE be used with Wordpress?

AdminLTE is an HTML template that can be used for any purpose. However, it is not made to be easily installed on Wordpress. It will require some effort and enough knowledge of the Wordpress script to do so.

Is there an integration guide for PHP frameworks such as Yii or Symfony?

Short answer, no. However, there are forks and tutorials around the web that provide info on how to integrate with many different frameworks. There are even versions of AdminLTE that are integrated with jQuery ajax, AngularJS and/or MVC5 ASP .NET.

How do I get notified of new AdminLTE versions?

The best option is to subscribe to our mailing list using the subscription form on Almsaeed Studio.
    If that's not appealing to you, you may watch the repository on Github or visit Almsaeed Studio every now and then for updates and announcements.

License

AdminLTE

    AdminLTE is an open source project that is licensed under the MIT license.
    This allows you to do pretty much anything you want as long as you include
    the copyright in "all copies or substantial portions of the Software."
    Attribution is not required (though very much appreciated).

          Version 2.3.6

        Copyright © 2014-2016 Almsaeed Studio. All rights reserved.

          This is an example of the control sidebar.


text:
using RiskItForTheBiscuit.Risk;
using RiskItForTheBiscuitClient.Drawing;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RiskItForTheBiscuitClient
{
    public partial class TerritoryLabel : Control
    {
        private Point drawingOffset = new Point(6, 10);

        public Territory Territory { get; set; } = new Territory("jonaisafaggot")
        {
            NrOfSoldiers = 1,
            Owner = new Player("")
            {
                PlayerColor = Color.OrangeRed
            }
        };

        public TerritoryLabel()
        {
            InitializeComponent();
            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            this.BackColor = Color.Transparent;
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
            Graphics g = pe.Graphics;

            // settings
            g.SmoothingMode = SmoothingMode.HighQuality;

            Rectangle bounds = new Rectangle(Point.Empty, new Size(this.Width - 1, this.Height - 1));
            g.DrawRectangle(Pens.Red, bounds);

            this.Size = g.DrawLabel(Territory, drawingOffset);
        }

        public void CorrectLocation()
        {
            this.Location = Location + (Size)drawingOffset;
        }

        protected override void OnParentChanged(EventArgs e)
        {
            base.OnParentChanged(e);
            CorrectLocation();
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
#ifndef _SCHEDULEROBJECT_H
#define _SCHEDULEROBJECT_H

// condor includes
#include "condor_common.h"
#include "condor_classad.h"

// local includes
#include "Codec.h"
#include "AviaryUtils.h"

using namespace std;
using namespace aviary::util;
using namespace aviary::codec;

namespace aviary {
namespace job {

struct SchedulerStats {
    // Properties
    string      CondorPlatform;
    string      CondorVersion;
    int64_t     DaemonStartTime;
    string      Pool;
    string      System;
    int64_t     JobQueueBirthdate;
    uint32_t    MaxJobsRunning;
    string      Machine;
    string      MyAddress;
    string      Name;

    // Statistics
    uint32_t    MonitorSelfAge;
    double      MonitorSelfCPUUsage;
    double      MonitorSelfImageSize;
    uint32_t    MonitorSelfRegisteredSocketCount;
    uint32_t    MonitorSelfResidentSetSize;
    int64_t     MonitorSelfTime;
    uint32_t    NumUsers;
    uint32_t    TotalHeldJobs;
    uint32_t    TotalIdleJobs;
    uint32_t    TotalJobAds;
    uint32_t    TotalRemovedJobs;
    uint32_t    TotalRunningJobs;
};

class SchedulerObject {
public:

	void update(const ClassAd &ad);
	bool submit(AttributeMapType& jobAdMap, string& id, string& text);
	bool setAttribute(string id,
                      string name,
                      string value,
                      string &text);
	bool hold(string id, string &reason, string &text);
	bool release(string id, string &reason, string &text);
	bool remove(string id, string &reason, string &text);
	bool suspend(string id, string &reason, string &text);
	bool _continue(string id, string &reason, string &text);

    static SchedulerObject* getInstance();

	const char* getPool() {return m_pool.c_str(); }
	const char* getName() {return m_name.c_str(); }

	~SchedulerObject();

private:
    SchedulerObject();
	SchedulerObject(SchedulerObject const&);
	SchedulerObject& operator=(SchedulerObject const&);

    string m_pool;
    string m_name;
	Codec* m_codec;
    SchedulerStats m_stats;
    static SchedulerObject* m_instance;

};

}} /* aviary::job */

#endif /* _SCHEDULEROBJECT_H */


text:
<?xml version="1.0" encoding="utf-8"?>
<!--

-->

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:drawable/screen_progress_frame" />
    <item>
        <scale scaleWidth="100%" scaleGravity="0x3" drawable="@android:drawable/screen_progress_inner" />
    </item>
</layer-list>


text:
package com.ibm.watson.apis.conversation_enhanced.retrieve_and_rank;

import java.io.IOException;

import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;

import com.ibm.watson.apis.conversation_enhanced.utils.Constants;
import com.ibm.watson.apis.conversation_enhanced.utils.HttpSolrClientUtils;
import com.ibm.watson.apis.conversation_enhanced.utils.Messages;
import com.ibm.watson.developer_cloud.retrieve_and_rank.v1.RetrieveAndRank;
import com.ibm.watson.developer_cloud.util.CredentialUtils;
import com.ibm.watson.developer_cloud.util.CredentialUtils.ServiceCredentials;

public class Query {

  public static String COLLECTION_NAME;
  private static String USERNAME;
  private static String PASSWORD;
  private static String RANKER_ID;
  private static String CLUSTER_ID;

  public static HttpSolrClient solrClient;
  private static final Logger logger = LogManager.getLogger(Query.class.getName());

  public Query(HttpSolrClient solrClient) {
    Query.solrClient = solrClient;
    logger.info(Messages.getString("Query.INITIALIZE_SOLR_CLIENT")); //$NON-NLS-1$
  }

  public Query() {
    ServiceCredentials creds = CredentialUtils.getUserNameAndPassword("retrieve_and_rank"); //$NON-NLS-1$
    if (creds == null) {
      throw new IllegalArgumentException(Messages.getString("Query.NO_SERVICE_CREDENTIALS")); //$NON-NLS-1$
    }
    USERNAME = creds.getUsername();
    PASSWORD = creds.getPassword();

    RetrieveAndRank retrieveAndRankService = new RetrieveAndRank();
    retrieveAndRankService.setUsernameAndPassword(USERNAME, PASSWORD);

    if(StringUtils.isNotBlank(System.getenv("CLUSTER_ID"))){ //$NON-NLS-1$
      CLUSTER_ID = System.getenv("CLUSTER_ID"); //$NON-NLS-1$
    } else {
      try{
        CLUSTER_ID = retrieveAndRankService.getSolrClusters().execute().getSolrClusters().get(0).getId();
      } catch(Exception e){
        throw new IllegalArgumentException(Messages.getString("Query.MISSING_CLUSTER_ID")); //$NON-NLS-1$
      }
    }
    if(StringUtils.isNotBlank(System.getenv("RANKER_ID"))){ //$NON-NLS-1$
      RANKER_ID = System.getenv("RANKER_ID"); //$NON-NLS-1$
    } else {
      try{
        RANKER_ID = retrieveAndRankService.getRankers().execute().getRankers().get(0).getId();
      } catch(Exception e) {
        throw new IllegalArgumentException(Messages.getString("Query.MISSING_RANKER_ID")); //$NON-NLS-1$
      }
    }
    if(StringUtils.isNotBlank(System.getenv("COLLECTION_NAME"))){ //$NON-NLS-1$
      COLLECTION_NAME = System.getenv("COLLECTION_NAME"); //$NON-NLS-1$
    } else {
      COLLECTION_NAME = Constants.COLLECTION_NAME;
    }
  }

  /**
   * Use the Watson Developer Cloud SDK to send the user's query to the retrive and rank service
   *
   * @param userQuery The user's query to be sent to the retrieve and rank service
   * @return The unaltered SOLR query responses obtained from the retrieve and rank service
   * @throws SolrServerException
   * @throws IOException
   */
  public QueryResponse query(String userQuery) throws Exception {

    // Configure the Watson Developer Cloud SDK to make a call to the appropriate retrieve and rank
    // service. Specific information is obtained from environment variable and the services
    // associated with the app. See the Query constructor for details.
    RetrieveAndRank service = new RetrieveAndRank();
    HttpSolrClient solrClient = HttpSolrClientUtils.getSolrClient(service.getSolrUrl(CLUSTER_ID), USERNAME, PASSWORD);

    logger.info(Messages.getString("Query.PASS_CLUSTER_DETAILS")); //$NON-NLS-1$

    // Setup the query parameters
    final SolrQuery query = new SolrQuery(userQuery)
        // The fields we want in the response object
        .setFields(Constants.SCHEMA_FIELD_ID, Constants.SCHEMA_FIELD_CONTENT_TEXT,
            Constants.SCHEMA_FIELD_TITLE, Constants.SCHEMA_FIELD_CONFIDENCE, Constants.SCHEMA_FIELD_SOURCE_URL)
        // The size of the SOLR snippet that we show as our initial answers
        .setHighlight(true).setHighlightFragsize(150).setHighlightSnippets(1)
        // The field to perform highlighting on
        .setParam("hl.fl", Constants.SCHEMA_FIELD_CONTENT_TEXT)
        // The number of answers to return
        .setRows(Constants.RESULTS_TO_FETCH) // $NON-NLS-1$
        // The retrieve and rank endpoint to hit
        .setRequestHandler("/fcselect")
        // The ranker to rank the potential answers
        .setParam("ranker_id", RANKER_ID); //$NON-NLS-1$ //$NON-NLS-2$

    // Send the query to the retrieve and rank service to obtain answers to the user's query
    logger.info(Messages.getString("Query.QUERY_SOLR_RANKER")); //$NON-NLS-1$
    return solrClient.query(COLLECTION_NAME, query);
  }

}


text:
import * as React from 'react';
import { Route, Switch } from 'react-router-dom';
import { NotationEdit, NotationPrint, NotationShow, NotationStudio } from './';
import { withNotation } from 'enhancers';

const Notation = ({ match }) => (
  <Switch>
    <Route path={`${match.url}/:id/edit`} component={NotationEdit} />
    <Route path={`${match.url}/:id/print`} component={NotationPrint} />
    <Route path={`${match.url}/:id/studio`} component={NotationStudio} />
    <Route path={`${match.url}/:id`} component={NotationShow} />
  </Switch>
);

export default Notation;


text:
Originally published: 2005-04-08 06:39:18
Last updated: 2005-04-08 18:52:41
Author: Chris Cioffi

This is a very simple script to allow someone to examine a ZODB database.  Start the script and you can see what is in your ZODB file as well as the overall structure.


text:
using MatterHackers.Agg;
using MatterHackers.Agg.UI;
using MatterHackers.MatterControl.PartPreviewWindow;

namespace MatterHackers.MatterControl.SlicerConfiguration
{
	public class MaterialIndexField : UIField
	{
		private ItemMaterialButton materialWidget;
		private PrinterConfig printer;
		private ThemeConfig theme;

		public MaterialIndexField(PrinterConfig printer, ThemeConfig theme, int materialIndex)
		{
			this.printer = printer;
			this.theme = theme;
			this.MaterialIndex = materialIndex;
		}

		public int MaterialIndex { get; set; }

		public override void Initialize(int tabIndex)
		{
			var container = new FlowLayoutWidget();

			materialWidget = new ItemMaterialButton(printer, theme, MaterialIndex);
			materialWidget.MaterialChanged += (s, e) =>
			{
				MaterialIndex = e;
				base.OnValueChanged(new FieldChangedEventArgs(true));
			};

			container.AddChild(materialWidget);

			this.Content = container;
		}

		protected override void OnValueChanged(FieldChangedEventArgs fieldChangedEventArgs)
		{
			materialWidget.Color = new Color(this.Value);

			base.OnValueChanged(fieldChangedEventArgs);
		}
	}
}


text:
import ObjectManager from '../../../../units/urb-base-server/graphql/ObjectManager'

// Class used by GraphQL Server
export default class Ensayo {
  id: string
  Ensayo_User_id: string
  Ensayo_Title: string
  Ensayo_Description: string
  Ensayo_Content: string

  constructor(fields: {
    id: string,
    Ensayo_User_id: string,
    Ensayo_Title: string,
    Ensayo_Description: string,
    Ensayo_Content: string
  }) {
    this.id = fields.id
    this.Ensayo_User_id = fields.Ensayo_User_id
    this.Ensayo_Title = fields.Ensayo_Title
    this.Ensayo_Description = fields.Ensayo_Description
    this.Ensayo_Content = fields.Ensayo_Content
  }
}

ObjectManager.registerEntity('Ensayo', Ensayo)


text:
package uk.ac.ebi.pride.archive.dataprovider.project;

import uk.ac.ebi.pride.archive.dataprovider.entity.EntityProvider;

/**
 * @author Jose A. Dianes
 * @version $Id$
 */
public interface ProjectTagProvider extends EntityProvider {

    String getTag();

}


text:
'use strict';

var should = require('should');

module.exports = function(Mase, util){
  should.exists(util);

  it('instance should have property `name`', function(){
    var mase = new Mase();
    mase.should.have.property('name');
  });

  it('instance should be empty when no data is given', function(){
    var mase = new Mase();
    mase.find().should.be.eql([]);
  });

  it('instances should not have conflict', function(){
    var one = new Mase();
    var two = new Mase();

    one.insert({one: 1});
    two.insert({two: 2});

    one.find().should.have.property('length', 1);
    two.find().should.have.property('length', 1);

    one.find().should.containDeep([{one: 1}]);
    two.find().should.containDeep([{two: 2}]);
  });

  it('instances same name share data', function(){
    var one = new Mase('label');
    var two = new Mase('label');

    one.insert({one: 1});
    two.insert({two: 2});

    one.find().should.have.property('length', 2);
    two.find().should.have.property('length', 2);

    one.find().should.containDeep([{one: 1}, {two: 2}]);
    two.find().should.containDeep([{one: 1}, {two: 2}]);
  });

  it('instance with given `name`', function(){
    var mase = new Mase('collection');
    mase.should.have.property('name', 'collection');
  });

  it('instance with given `data` [1,2,3]', function(){
    var mase = new Mase(data), data = [1,2,3];

    mase.find().forEach(function(doc, index){
      doc.should.have.property('value', data[index]);
    });
  });

  it('instance with given `data` [{name: \'one\'}, ...]', function(){

    var data = ['one', 'two', 'three'].map(function(name){
      return {name: name};
    });

    var mase = new Mase(data);

    mase.find().forEach(function(doc, index){
      doc.should.have.property('name', data[index].name);
    });

  });
};


text:
#include "fnet.h"
#if FNET_MIMXRT && FNET_CFG_CPU_WIFI

#include "port/netif/qca/fnet_qca.h"

/*MCUX*/
#include "fsl_iomuxc.h"
/************************************************************************
* Wi-Fi interface structures.
*************************************************************************/
static fnet_eth_if_t fnet_mimxrt_wifi_if =
{
    .eth_prv = &fnet_qca_if,                    /* Points to Wi-Fi driver-specific control data structure. */
    .eth_output = fnet_qca_output,              /* Ethernet driver output.*/
};

fnet_netif_t fnet_cpu_wifi_if =
{
    .netif_name = FNET_CFG_CPU_WIFI_NAME,       /* Network interface name.*/
    .netif_mtu = FNET_ETH_MTU,                  /* Maximum transmission unit.*/
    .netif_prv = &fnet_mimxrt_wifi_if,              /* Points to interface specific data structure.*/
    .netif_api = &fnet_qca_api                  /* Interface API */
};

/************************************************************************
* Wi-Fi IO initialization.
*************************************************************************/
#if FNET_CFG_CPU_WIFI_IO_INIT
/************************************************************************
* DESCRIPTION: GT202/QCA4002 Wi-Fi board pin initialization.
*************************************************************************/
void BOARD_InitGT202Shield(void)
{
#if FNET_CFG_CPU_MIMXRT1052 || FNET_CFG_CPU_MIMXRT1062
    CLOCK_EnableClock(kCLOCK_Iomuxc);           /* iomuxc clock (iomuxc_clk_enable): 0x03u */

    IOMUXC_SetPinMux(
        IOMUXC_GPIO_AD_B0_03_GPIO1_IO03,        /* GPIO_AD_B0_03 is configured as GPIO1_IO03 */
        0U);                                    /* Software Input On Field: Input Path is determined by functionality */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_AD_B1_03_GPIO1_IO19,        /* GPIO_AD_B1_03 is configured as GPIO1_IO19 */
        0U);                                    /* Software Input On Field: Input Path is determined by functionality */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_00_LPSPI1_SCK,        /* GPIO_SD_B0_00 is configured as LPSPI1_SCK */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_00 */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_01_LPSPI1_PCS0,       /* GPIO_SD_B0_01 is configured as LPSPI1_PCS0 */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_01 */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_02_LPSPI1_SDO,        /* GPIO_SD_B0_02 is configured as LPSPI1_SDO */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_02 */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_03_LPSPI1_SDI,        /* GPIO_SD_B0_03 is configured as LPSPI1_SDI */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_03 */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_AD_B0_03_GPIO1_IO03,        /* GPIO_AD_B0_03 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_AD_B1_03_GPIO1_IO19,        /* GPIO_AD_B1_03 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_00_LPSPI1_SCK,        /* GPIO_SD_B0_00 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_01_LPSPI1_PCS0,       /* GPIO_SD_B0_01 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_02_LPSPI1_SDO,        /* GPIO_SD_B0_02 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_03_LPSPI1_SDI,        /* GPIO_SD_B0_03 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
#endif /* FNET_CFG_CPU_MIMXRT1052 || FNET_CFG_CPU_MIMXRT1062 */
}

/************************************************************************
* Silex2401/QCA4004 Wi-Fi board pin initialization. DOES MOT WORK!!!!
*************************************************************************/
void BOARD_InitSilex2401Shield(void)
{
#if FNET_CFG_CPU_MIMXRT1052 || FNET_CFG_CPU_MIMXRT1062
    CLOCK_EnableClock(kCLOCK_Iomuxc);           /* iomuxc clock (iomuxc_clk_enable): 0x03u */

    IOMUXC_SetPinMux(
        IOMUXC_GPIO_AD_B0_09_GPIO1_IO09,        /* GPIO_AD_B0_09 is configured as GPIO1_IO09 */
        0U);                                    /* Software Input On Field: Input Path is determined by functionality */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_AD_B0_11_GPIO1_IO11,        /* GPIO_AD_B0_11 is configured as GPIO1_IO11 */
        0U);                                    /* Software Input On Field: Input Path is determined by functionality */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_00_LPSPI1_SCK,        /* GPIO_SD_B0_00 is configured as LPSPI1_SCK */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_00 */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_01_LPSPI1_PCS0,       /* GPIO_SD_B0_01 is configured as LPSPI1_PCS0 */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_01 */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_02_LPSPI1_SDO,        /* GPIO_SD_B0_02 is configured as LPSPI1_SDO */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_02 */
    IOMUXC_SetPinMux(
        IOMUXC_GPIO_SD_B0_03_LPSPI1_SDI,        /* GPIO_SD_B0_03 is configured as LPSPI1_SDI */
        1U);                                    /* Software Input On Field: Force input path of pad GPIO_SD_B0_03 */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_AD_B0_09_GPIO1_IO09,        /* GPIO_AD_B0_09 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_AD_B0_11_GPIO1_IO11,        /* GPIO_AD_B0_11 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_00_LPSPI1_SCK,        /* GPIO_SD_B0_00 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_01_LPSPI1_PCS0,       /* GPIO_SD_B0_01 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_02_LPSPI1_SDO,        /* GPIO_SD_B0_02 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
    IOMUXC_SetPinConfig(
        IOMUXC_GPIO_SD_B0_03_LPSPI1_SDI,        /* GPIO_SD_B0_03 PAD functional properties : */
        0x10B0u);                               /* Slew Rate Field: Slow Slew Rate
                                                 Drive Strength Field: R0/6
                                                 Speed Field: medium(100MHz)
                                                 Open Drain Enable Field: Open Drain Disabled
                                                 Pull / Keep Enable Field: Pull/Keeper Enabled
                                                 Pull / Keep Select Field: Keeper
                                                 Pull Up / Down Config. Field: 100K Ohm Pull Down
                                                 Hyst. Enable Field: Hysteresis Disabled */
#endif /* FNET_CFG_CPU_MIMXRT1052 || FNET_CFG_CPU_MIMXRT1062 */
}

#if !(FNET_CFG_CPU_MIMXRT1052 || FNET_CFG_CPU_MIMXRT1062)
    #warning "QCA400x Wi-Fi board pin initialization is not tested for your platform."
#endif

#endif /* FNET_CFG_CPU_WIFI_IO_INIT */

#endif /* FNET_MIMXRT && FNET_CFG_CPU_WIFI */


text:
const optimisticProjectMedia = (media, proj, context, customTeam) => {
  let { team } = context;
  if (customTeam) {
    team = Object.assign(team, customTeam);
  }

  let title = null;
  let project = null;

  const now = parseInt((new Date().getTime() / 1000), 10).toString();

  /* eslint-disable prefer-destructuring */
  if (typeof media === 'object') {
    title = media.title;
    project = media.project;
  } else {
    title = media;
    project = proj || context.project;
  }

  let mediasCount = 0;
  const counter = document.getElementsByClassName('search__results-heading span')[0];
  if (counter) {
    mediasCount = parseInt(counter.innerHTML.replace(/[^0-9]/, ''), 10);
  }

  const relayId = btoa(`ProjectMedia/${Math.random()}`);

  const optimisticResponse = {
    project_mediaEdge: {
      node: {
        dbid: 0,
        title,
        type: '-',
        demand: 0,
        linked_items_count: 0,
        status: 'undetermined',
        picture: null,
        description: '',
        created_at: now,
        updated_at: now,
        last_seen: now,
        share_count: 0,
        list_columns_values: JSON.stringify({
          type_of_media: '-',
          demand: 0,
          linked_items_count: 0,
          status: 'undetermined',
          created_at_timestamp: parseInt(now, 10),
          updated_at_timestamp: parseInt(now, 10),
          last_seen: parseInt(now, 10),
          share_count: 0,
          report_status: 'unpublished',
          tags_as_sentence: '',
          sources_as_sentence: JSON.stringify({}),
          published_by: {},
          folder: '',
          media_published_at: 0,
          comment_count: 0,
          reaction_count: 0,
          suggestions_count: 0,
          related_count: 0,
        }),
        check_search_project: project ? {
          id: project.search_id,
          number_of_results: mediasCount + 1,
        } : null,
        check_search_team: {
          id: team.search_id,
          number_of_results: team.medias_count + 1,
        },
        is_read: false,
        project_id: project ? project.dbid : null,
        id: relayId,
        permissions: JSON.stringify({
          'read ProjectMedia': true,
          'update ProjectMedia': false,
          'destroy ProjectMedia': false,
          'create Comment': false,
          'create Flag': false,
          'create Status': false,
          'create Tag': false,
          'create Dynamic': false,
          'create Task': false,
        }),
        team: {
          slug: team.slug,
          id: team.id || 'VGVhbS8w\n',
          medias_count: team.medias_count + 1,
        },
        project: project ? {
          id: project.id,
          dbid: project.dbid,
          medias_count: project.medias_count + 1,
          team: {
            slug: team.slug,
            id: team.id || 'VGVhbS8w\n',
            medias_count: team.medias_count + 1,
          },
        } : null,
      },
    },
    project_media: {
      dbid: 0,
      title,
      id: relayId,
    },
  };

  return optimisticResponse;
};

export default optimisticProjectMedia;


text:
'''Simple parsing using mxTextTools

See the /doc subdirectory for introductory and
general documentation.  See license.txt for licensing
information.  (This is a BSD-licensed package).
'''
__version__="2.1.1"


text:
The AT&T Java Codekit allows you to interact with AT&T's APIs.

## Requirements

- Java JRE 1.6+
- Java JDK 1.6+
- Maven

## Usage

The Codekit uses maven for managing the build process; therefore, the
documentation at [maven's website](https://maven.apache.org/) can be used for
understanding the Codekit's project structure.

All of following commands must be executed from the codekit directory.
#### Maven Project

If your project is a maven project, you can use maven to take care of linking
the jar file. First install the Codekit by running the following command from
the codekit directory:

    mvn clean install

Then add the following to your pom.xml's dependency section (replace version
with the latest version):

    <dependency>
        <groupId>com.att.api</groupId>
        <artifactId>codekit</artifactId>
        <version>1.0</version>
    </dependency>

#### Non-maven Project

To use the Codekit, it must first be compiled. This can be done via command
line by running (from the codekit directory):

    mvn clean package

After the command is executed, a jar file (e.g. codekit-1.0.jar) will be
generated in the 'target' folder. The jar may then be used by linking it in
your project.

## Example Code

Example code is located in the examples folder. Each example is a stand-alone
application that uses Maven for the build process. Each example must be
modified to include values, such as an application key, by editing the source
file. The source file contains comments that describe which parts need to be
modified.

For example, to run the sms example:
Switch the working directory to examples/sms (e.g. `cd examples/sms`).
Modify the src/main/java/com/att/example/App.java file.
Run maven to generate the jar (e.g. `mvn clean package`).
Run the compiled jar (e.g. `java -jar targets/sms-1.0-SNAPSHOT.jar`).

## Test Code

Test code can be found in the 'codekit/src/test' folder. The folder contains both
unit and integration tests. To run the tests, the follow command may be used
(from the codekit directory):
    mvn clean verify

## Documentation

The Codekit contains inline documentation, which can be generated using the
`mvn` command. To generate documentation, run (from the codekit directory):

    mvn javadoc:javadoc

After the command is executed, the documentation will be in the
'codekit/target/apidocs' folder and can be accessed using a web browser.

## Coding Standards

The Codekit follows [Sun's coding conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html).


text:
using namespace GeneHunter;

TEST(VariantTest, Default)
{
#if 0
	{
		Variant variant("P1",1212,"--","TA",38,"AGTGTAGATGGCGTAGCCCGATGACACCA");

		path outputFile = testSuite.getOutputDirectory() / "VariantTest.xml";
		std::ofstream output(outputFile.c_str());

		using boost::property_tree::ptree;
		ptree pt;
		variant.writeTree(pt);

		write_xml(output,pt,boost::property_tree::xml_writer_settings<char>(' ',2));
	}
	{
		FullMatchManager fullMatchManager;

		path inputFullMatchManagerFile = testSuite.getInputDirectory() / "GenomeTest" / "FullMatchManager.bin";
		if (!exists(inputFullMatchManagerFile)) throw GeneAssemblerException("File not found: " + inputFullMatchManagerFile.string());

		readBinary(fullMatchManager,"FullMatchManager",inputFullMatchManagerFile);

		cout << "fullMatchManager size = " << fullMatchManager.getMatches().size() << endl;

		multimap< size_t, Range<size_t> > rangeMap;

		for ( auto const& elem : fullMatchManager.getMatches() )
		{
			auto match = elem.second;
			rangeMap.insert(make_pair(match.nuclGI_,Range<size_t>(match.refStart_,match.refEnd_)));
		}

		cout << "rangeMap size = " << rangeMap.size() << endl;

		size_t count(0);
		for ( auto const& elem : rangeMap )
		{
			if ( count == 100 ) break;
			++count;
			cout << elem << endl;
		}
	}
#endif
}