paraview-lite
Version:
Lite ParaView client for Scientific Visualization on the Web
267 lines (248 loc) • 7.17 kB
HTML
<div :class="$style.container">
<v-container fluid fill-height align-center :class="$style.topBar">
<v-layout row justify-start align-center>
<v-flex xs1 justify-center>
<v-icon :color="color">{{ module.icon }}</v-icon>
</v-flex>
<v-flex justify-start>
<label :class="$style.title" :color="color">{{ module.label }}</label>
</v-flex>
<v-spacer />
<v-btn
flat
icon
@click="deleteProxy"
:color="color"
>
<v-icon>{{ $vuetify.icons.pvLite.delete }}</v-icon>
</v-btn>
</v-layout>
</v-container>
<v-card flat :class="$style.block">
<v-card-title :class="$style.blockTitle">
<span class="body-2">Radius</span>
</v-card-title>
<v-card-text :class="$style.blockContent">
<v-container fluid grid-list-md :class="$style.noPaddingMargin">
<v-layout row wrap align-center>
<v-flex xs9>
<v-slider
:class="$style.noTopPadding"
hide-details
v-model="radius"
:max="10"
:min="0.1"
:step="0.1"
/>
</v-flex>
<v-flex xs3>
<v-text-field
:class="$style.noTopPadding"
hide-details
type="number"
v-model="radius"
:min="0.1"
:max="10"
:step="0.1"
/>
</v-flex>
</v-layout>
</v-container>
</v-card-text>
</v-card>
<v-card flat :class="$style.block">
<v-card-title :class="$style.blockTitle">
<span class="body-2">Center</span>
</v-card-title>
<v-card-text :class="$style.blockContent">
<v-container fluid grid-list-md :class="$style.noPaddingMargin">
<v-layout row wrap align-center>
<v-flex xs1>
<label :class="$style.smallLabel">X</label>
</v-flex>
<v-flex xs7>
<v-slider
:class="$style.noTopPadding"
hide-details
v-model="xCenter"
:min="domains.xCenter.min"
:max="domains.xCenter.max"
:step="domains.xCenter.step"
/>
</v-flex>
<v-flex xs1/>
<v-flex xs3>
<v-text-field
:class="$style.noTopPadding"
hide-details
type="number"
v-model="xCenter"
:min="domains.xCenter.min"
:max="domains.xCenter.max"
:step="domains.xCenter.step"
/>
</v-flex>
<v-flex xs1>
<label :class="$style.smallLabel">Y</label>
</v-flex>
<v-flex xs7>
<v-slider
:class="$style.noTopPadding"
hide-details
v-model="yCenter"
:min="domains.yCenter.min"
:max="domains.yCenter.max"
:step="domains.yCenter.step"
/>
</v-flex>
<v-flex xs1/>
<v-flex xs3>
<v-text-field
:class="$style.noTopPadding"
hide-details
type="number"
v-model="yCenter"
:min="domains.yCenter.min"
:max="domains.yCenter.max"
:step="domains.yCenter.step"
/>
</v-flex>
<v-flex xs1>
<label :class="$style.smallLabel">Z</label>
</v-flex>
<v-flex xs7>
<v-slider
:class="$style.noTopPadding"
hide-details
v-model="zCenter"
:min="domains.zCenter.min"
:max="domains.zCenter.max"
:step="domains.zCenter.step"
/>
</v-flex>
<v-flex xs1/>
<v-flex xs3>
<v-text-field
:class="$style.noTopPadding"
hide-details
type="number"
v-model="zCenter"
:min="domains.zCenter.min"
:max="domains.zCenter.max"
:step="domains.zCenter.step"
/>
</v-flex>
</v-layout>
</v-container>
</v-card-text>
</v-card>
<v-card flat :class="$style.block">
<v-card-title :class="$style.blockTitle">
<span class="body-2">Phi</span>
</v-card-title>
<v-card-text :class="$style.blockContent">
<v-container fluid grid-list-md :class="$style.noPaddingMargin">
<v-layout row wrap align-center>
<v-flex xs3>
<label :class="$style.smallLabel">Range</label>
</v-flex>
<v-flex xs9>
<v-range-slider
:class="$style.noTopPadding"
hide-details
v-model="phi"
:max="180"
:min="0"
:step="1"
/>
</v-flex>
<v-flex xs3>
<label :class="$style.smallLabel">Resolution</label>
</v-flex>
<v-flex xs9>
<v-slider
:class="$style.noTopPadding"
hide-details
v-model="phiResolution"
:max="60"
:min="3"
:step="1"
/>
</v-flex>
</v-layout>
</v-container>
</v-card-text>
</v-card>
<v-card flat :class="$style.block">
<v-card-title :class="$style.blockTitle">
<span class="body-2">Theta</span>
</v-card-title>
<v-card-text :class="$style.blockContent">
<v-container fluid grid-list-md :class="$style.noPaddingMargin">
<v-layout row wrap align-center>
<v-flex xs3>
<label :class="$style.smallLabel">Range</label>
</v-flex>
<v-flex xs9>
<v-range-slider
:class="$style.noTopPadding"
hide-details
v-model="theta"
:max="360"
:min="0"
:step="1"
/>
</v-flex>
<v-flex xs3>
<label :class="$style.smallLabel">Resolution</label>
</v-flex>
<v-flex xs9>
<v-slider
:class="$style.noTopPadding"
hide-details
v-model="thetaResolution"
:max="60"
:min="3"
:step="1"
/>
</v-flex>
</v-layout>
</v-container>
</v-card-text>
</v-card>
<v-card flat :class="$style.block">
<v-btn
block
outline
color="indigo"
v-if="create"
@click="createProxy"
>Create</v-btn>
</v-card>
<v-container
fluid
grid-list-md
v-if="hasChange() && !autoApply && !create"
:class="$style.buttonBar"
>
<v-layout row wrap align-center >
<v-flex xs3>
<v-btn
block
outline
color="red darken-1"
@click="reset"
>Reset</v-btn>
</v-flex>
<v-spacer />
<v-flex xs7>
<v-btn
block
outline
color="teal accent-4"
@click="apply"
>Apply ({{ hasChange() }})</v-btn>
</v-flex>
</v-layout>
</v-container>
</div>