def __init__(self, instance, option): super(BoolFormItem, self).__init__(instance, option) value = option.__get__(instance) self.widget = QtGui.QCheckBox() self.widget.setChecked(value) self.widget.clicked.connect(nonpartial(self.changed.emit))
def __init__(self, parent=None, artist=None): super(RGBEdit, self).__init__(parent) self._artist = artist l = QtGui.QGridLayout() current = QtGui.QLabel("Contrast") visible = QtGui.QLabel("Visible") l.addWidget(current, 0, 2, 1, 1) l.addWidget(visible, 0, 3, 1, 1) l.setColumnStretch(0, 0) l.setColumnStretch(1, 10) l.setColumnStretch(2, 0) l.setColumnStretch(3, 0) l.setRowStretch(0, 0) l.setRowStretch(1, 0) l.setRowStretch(2, 0) l.setRowStretch(3, 0) l.setRowStretch(4, 10) curr_grp = QtGui.QButtonGroup() self.current = {} self.vis = {} self.cid = {} for row, color in enumerate(['red', 'green', 'blue'], 1): lbl = QtGui.QLabel(color.title()) cid = ComponentIDCombo() curr = QtGui.QRadioButton() curr_grp.addButton(curr) vis = QtGui.QCheckBox() vis.setChecked(True) l.addWidget(lbl, row, 0, 1, 1) l.addWidget(cid, row, 1, 1, 1) l.addWidget(curr, row, 2, 1, 1) l.addWidget(vis, row, 3, 1, 1) curr.clicked.connect(self.update_current) vis.toggled.connect(self.update_visible) cid.currentIndexChanged.connect(self.update_layers) self.cid[color] = cid self.vis[color] = vis self.current[color] = curr self.setLayout(l) self.current['red'].click()
def test_connect_bool_button(): class Test(object): a = CallbackProperty() t = Test() box = QtGui.QCheckBox() connect_bool_button(t, 'a', box) box.setChecked(True) assert t.a box.setChecked(False) assert not t.a t.a = True assert box.isChecked() t.a = False assert not box.isChecked()
def _build_ui(self): w = QtGui.QCheckBox() w.setChecked(self.params) w.toggled.connect(nonpartial(self.changed)) return w
def __init__(self): self._button = QtGui.QCheckBox()
def setupUi(self, HistogramWidget): HistogramWidget.setObjectName("HistogramWidget") HistogramWidget.resize(240, 207) HistogramWidget.setFocusPolicy(QtCore.Qt.StrongFocus) HistogramWidget.setStyleSheet("") self.horizontalLayout_6 = QtGui.QHBoxLayout(HistogramWidget) self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_6.setObjectName("horizontalLayout_6") self.verticalLayout_5 = QtGui.QVBoxLayout() self.verticalLayout_5.setContentsMargins(-1, -1, -1, 10) self.verticalLayout_5.setObjectName("verticalLayout_5") self.option_dashboard = QtGui.QWidget(HistogramWidget) self.option_dashboard.setObjectName("option_dashboard") self.verticalLayout_4 = QtGui.QVBoxLayout(self.option_dashboard) self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) self.verticalLayout_4.setObjectName("verticalLayout_4") self.verticalLayout_3 = QtGui.QVBoxLayout() self.verticalLayout_3.setSpacing(3) self.verticalLayout_3.setObjectName("verticalLayout_3") self.combo_layout = QtGui.QHBoxLayout() self.combo_layout.setSpacing(1) self.combo_layout.setObjectName("combo_layout") self.attribute_layout = QtGui.QVBoxLayout() self.attribute_layout.setSpacing(1) self.attribute_layout.setObjectName("attribute_layout") self.label_4 = QtGui.QLabel(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label_4.sizePolicy().hasHeightForWidth()) self.label_4.setSizePolicy(sizePolicy) self.label_4.setAlignment(QtCore.Qt.AlignCenter) self.label_4.setObjectName("label_4") self.attribute_layout.addWidget(self.label_4) self.attributeCombo = QtGui.QComboBox(self.option_dashboard) self.attributeCombo.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToMinimumContentsLength) self.attributeCombo.setObjectName("attributeCombo") self.attribute_layout.addWidget(self.attributeCombo) self.combo_layout.addLayout(self.attribute_layout) self.verticalLayout_3.addLayout(self.combo_layout) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.binSpinBox = QtGui.QDoubleSpinBox(self.option_dashboard) self.binSpinBox.setKeyboardTracking(False) self.binSpinBox.setDecimals(0) self.binSpinBox.setMinimum(1.0) self.binSpinBox.setMaximum(100000.0) self.binSpinBox.setSingleStep(3.0) self.binSpinBox.setProperty("value", 10.0) self.binSpinBox.setObjectName("binSpinBox") self.horizontalLayout_5.addWidget(self.binSpinBox) self.label = QtGui.QLabel(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy) self.label.setObjectName("label") self.horizontalLayout_5.addWidget(self.label) self.verticalLayout_3.addLayout(self.horizontalLayout_5) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setContentsMargins(-1, 2, -1, 2) self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.label_2 = QtGui.QLabel(self.option_dashboard) self.label_2.setObjectName("label_2") self.horizontalLayout_3.addWidget(self.label_2) self.xmin = QtGui.QLineEdit(self.option_dashboard) self.xmin.setMaxLength(18) self.xmin.setObjectName("xmin") self.horizontalLayout_3.addWidget(self.xmin) self.horizontalLayout_4.addLayout(self.horizontalLayout_3) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_5 = QtGui.QLabel(self.option_dashboard) self.label_5.setObjectName("label_5") self.horizontalLayout_2.addWidget(self.label_5) self.xmax = QtGui.QLineEdit(self.option_dashboard) self.xmax.setMaxLength(18) self.xmax.setObjectName("xmax") self.horizontalLayout_2.addWidget(self.xmax) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) self.verticalLayout_3.addLayout(self.horizontalLayout_4) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.normalized_box = QtGui.QCheckBox(self.option_dashboard) self.normalized_box.setObjectName("normalized_box") self.verticalLayout.addWidget(self.normalized_box) self.autoscale_box = QtGui.QCheckBox(self.option_dashboard) self.autoscale_box.setChecked(True) self.autoscale_box.setObjectName("autoscale_box") self.verticalLayout.addWidget(self.autoscale_box) self.cumulative_box = QtGui.QCheckBox(self.option_dashboard) self.cumulative_box.setObjectName("cumulative_box") self.verticalLayout.addWidget(self.cumulative_box) spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.horizontalLayout.addLayout(self.verticalLayout) self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.xlog_box = QtGui.QCheckBox(self.option_dashboard) self.xlog_box.setObjectName("xlog_box") self.verticalLayout_2.addWidget(self.xlog_box) self.ylog_box = QtGui.QCheckBox(self.option_dashboard) self.ylog_box.setObjectName("ylog_box") self.verticalLayout_2.addWidget(self.ylog_box) spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_2.addItem(spacerItem1) self.horizontalLayout.addLayout(self.verticalLayout_2) self.verticalLayout_3.addLayout(self.horizontalLayout) self.verticalLayout_4.addLayout(self.verticalLayout_3) self.verticalLayout_5.addWidget(self.option_dashboard) self.horizontalLayout_6.addLayout(self.verticalLayout_5) self.retranslateUi(HistogramWidget) QtCore.QMetaObject.connectSlotsByName(HistogramWidget)
def __init__(self, constraints, parent=None): """ Parameters ---------- constraints : dict The `contstraints` property of a :class:`~glue.core.fitters.BaseFitter1D` object parent : QtGui.QWidget (optional) The parent of this widget """ super(ConstraintsWidget, self).__init__(parent) self.constraints = constraints self.layout = QtGui.QGridLayout() self.layout.setContentsMargins(2, 2, 2, 2) self.layout.setSpacing(4) self.setLayout(self.layout) self.layout.addWidget(QtGui.QLabel("Estimate"), 0, 1) self.layout.addWidget(QtGui.QLabel("Fixed"), 0, 2) self.layout.addWidget(QtGui.QLabel("Bounded"), 0, 3) self.layout.addWidget(QtGui.QLabel("Lower Bound"), 0, 4) self.layout.addWidget(QtGui.QLabel("Upper Bound"), 0, 5) self._widgets = {} names = sorted(list(self.constraints.keys())) for k in names: row = [] w = QtGui.QLabel(k) row.append(w) v = QtGui.QDoubleValidator() e = QtGui.QLineEdit() e.setValidator(v) e.setText(str(constraints[k]['value'] or '')) row.append(e) w = QtGui.QCheckBox() w.setChecked(constraints[k]['fixed']) fix = w row.append(w) w = QtGui.QCheckBox() limits = constraints[k]['limits'] w.setChecked(limits is not None) bound = w row.append(w) e = QtGui.QLineEdit() e.setValidator(v) if limits is not None: e.setText(str(limits[0])) row.append(e) e = QtGui.QLineEdit() e.setValidator(v) if limits is not None: e.setText(str(limits[1])) row.append(e) def unset(w): def result(active): if active: w.setChecked(False) return result fix.toggled.connect(unset(bound)) bound.toggled.connect(unset(fix)) self._widgets[k] = row for i, row in enumerate(names, 1): for j, widget in enumerate(self._widgets[row]): self.layout.addWidget(widget, i, j)
def setupUi(self, ScatterWidget): ScatterWidget.setObjectName("ScatterWidget") ScatterWidget.resize(300, 349) ScatterWidget.setBaseSize(QtCore.QSize(555, 500)) ScatterWidget.setFocusPolicy(QtCore.Qt.StrongFocus) ScatterWidget.setStyleSheet("") self.horizontalLayout = QtGui.QHBoxLayout(ScatterWidget) self.horizontalLayout.setContentsMargins(3, 2, 2, 4) self.horizontalLayout.setObjectName("horizontalLayout") self.option_dashboard = QtGui.QWidget(ScatterWidget) self.option_dashboard.setObjectName("option_dashboard") self.verticalLayout = QtGui.QVBoxLayout(self.option_dashboard) self.verticalLayout.setSpacing(4) self.verticalLayout.setContentsMargins(0, 0, 0, 10) self.verticalLayout.setObjectName("verticalLayout") self.xAxisLayout = QtGui.QHBoxLayout() self.xAxisLayout.setSpacing(8) self.xAxisLayout.setContentsMargins(0, 0, 0, 0) self.xAxisLayout.setObjectName("xAxisLayout") self.xlabel = QtGui.QLabel(self.option_dashboard) self.xlabel.setObjectName("xlabel") self.xAxisLayout.addWidget(self.xlabel) self.xAxisComboBox = QtGui.QComboBox(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.xAxisComboBox.sizePolicy().hasHeightForWidth()) self.xAxisComboBox.setSizePolicy(sizePolicy) self.xAxisComboBox.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToMinimumContentsLength) self.xAxisComboBox.setObjectName("xAxisComboBox") self.xAxisLayout.addWidget(self.xAxisComboBox) self.xLogCheckBox = QtGui.QCheckBox(self.option_dashboard) self.xLogCheckBox.setObjectName("xLogCheckBox") self.xAxisLayout.addWidget(self.xLogCheckBox) self.xFlipCheckBox = QtGui.QCheckBox(self.option_dashboard) self.xFlipCheckBox.setObjectName("xFlipCheckBox") self.xAxisLayout.addWidget(self.xFlipCheckBox) self.xAxisLayout.setStretch(1, 4) self.verticalLayout.addLayout(self.xAxisLayout) self.yAxisLayout = QtGui.QHBoxLayout() self.yAxisLayout.setSpacing(8) self.yAxisLayout.setObjectName("yAxisLayout") self.ylabel = QtGui.QLabel(self.option_dashboard) self.ylabel.setObjectName("ylabel") self.yAxisLayout.addWidget(self.ylabel) self.yAxisComboBox = QtGui.QComboBox(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.yAxisComboBox.sizePolicy().hasHeightForWidth()) self.yAxisComboBox.setSizePolicy(sizePolicy) self.yAxisComboBox.setSizeAdjustPolicy( QtGui.QComboBox.AdjustToMinimumContentsLength) self.yAxisComboBox.setObjectName("yAxisComboBox") self.yAxisLayout.addWidget(self.yAxisComboBox) self.yLogCheckBox = QtGui.QCheckBox(self.option_dashboard) self.yLogCheckBox.setObjectName("yLogCheckBox") self.yAxisLayout.addWidget(self.yLogCheckBox) self.yFlipCheckBox = QtGui.QCheckBox(self.option_dashboard) self.yFlipCheckBox.setObjectName("yFlipCheckBox") self.yAxisLayout.addWidget(self.yFlipCheckBox) self.yAxisLayout.setStretch(1, 4) self.verticalLayout.addLayout(self.yAxisLayout) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.snapLimits = QtGui.QPushButton(self.option_dashboard) self.snapLimits.setObjectName("snapLimits") self.horizontalLayout_3.addWidget(self.snapLimits) self.swapAxes = QtGui.QPushButton(self.option_dashboard) self.swapAxes.setObjectName("swapAxes") self.horizontalLayout_3.addWidget(self.swapAxes) self.verticalLayout.addLayout(self.horizontalLayout_3) self.hidden_attributes = QtGui.QCheckBox(self.option_dashboard) self.hidden_attributes.setObjectName("hidden_attributes") self.verticalLayout.addWidget(self.hidden_attributes) self.line = QtGui.QFrame(self.option_dashboard) self.line.setFrameShadow(QtGui.QFrame.Sunken) self.line.setLineWidth(2) self.line.setMidLineWidth(0) self.line.setFrameShape(QtGui.QFrame.HLine) self.line.setFrameShadow(QtGui.QFrame.Sunken) self.line.setObjectName("line") self.verticalLayout.addWidget(self.line) self.label = QtGui.QLabel(self.option_dashboard) self.label.setFrameShape(QtGui.QFrame.NoFrame) self.label.setFrameShadow(QtGui.QFrame.Sunken) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.xmin_label = QtGui.QLabel(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.xmin_label.sizePolicy().hasHeightForWidth()) self.xmin_label.setSizePolicy(sizePolicy) self.xmin_label.setMinimumSize(QtCore.QSize(40, 0)) self.xmin_label.setObjectName("xmin_label") self.horizontalLayout_4.addWidget(self.xmin_label) self.xmin = QtGui.QLineEdit(self.option_dashboard) self.xmin.setObjectName("xmin") self.horizontalLayout_4.addWidget(self.xmin) self.xmax_label = QtGui.QLabel(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.xmax_label.sizePolicy().hasHeightForWidth()) self.xmax_label.setSizePolicy(sizePolicy) self.xmax_label.setMinimumSize(QtCore.QSize(40, 0)) self.xmax_label.setObjectName("xmax_label") self.horizontalLayout_4.addWidget(self.xmax_label) self.xmax = QtGui.QLineEdit(self.option_dashboard) self.xmax.setObjectName("xmax") self.horizontalLayout_4.addWidget(self.xmax) self.verticalLayout.addLayout(self.horizontalLayout_4) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.ymin_label = QtGui.QLabel(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.ymin_label.sizePolicy().hasHeightForWidth()) self.ymin_label.setSizePolicy(sizePolicy) self.ymin_label.setMinimumSize(QtCore.QSize(40, 0)) self.ymin_label.setObjectName("ymin_label") self.horizontalLayout_5.addWidget(self.ymin_label) self.ymin = QtGui.QLineEdit(self.option_dashboard) self.ymin.setObjectName("ymin") self.horizontalLayout_5.addWidget(self.ymin) self.ymax_label = QtGui.QLabel(self.option_dashboard) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.ymax_label.sizePolicy().hasHeightForWidth()) self.ymax_label.setSizePolicy(sizePolicy) self.ymax_label.setMinimumSize(QtCore.QSize(40, 0)) self.ymax_label.setObjectName("ymax_label") self.horizontalLayout_5.addWidget(self.ymax_label) self.ymax = QtGui.QLineEdit(self.option_dashboard) self.ymax.setObjectName("ymax") self.horizontalLayout_5.addWidget(self.ymax) self.verticalLayout.addLayout(self.horizontalLayout_5) spacerItem = QtGui.QSpacerItem(1, 1, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.horizontalLayout.addWidget(self.option_dashboard) self.retranslateUi(ScatterWidget) QtCore.QMetaObject.connectSlotsByName(ScatterWidget)
def setupUi(self, SubsetFacet): SubsetFacet.setObjectName("SubsetFacet") SubsetFacet.resize(366, 405) self.verticalLayout = QtGui.QVBoxLayout(SubsetFacet) self.verticalLayout.setContentsMargins(4, 4, 4, 4) self.verticalLayout.setObjectName("verticalLayout") self.component_selector = ComponentSelector(SubsetFacet) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.component_selector.sizePolicy().hasHeightForWidth()) self.component_selector.setSizePolicy(sizePolicy) self.component_selector.setObjectName("component_selector") self.verticalLayout.addWidget(self.component_selector) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.label = QtGui.QLabel(SubsetFacet) self.label.setObjectName("label") self.horizontalLayout_5.addWidget(self.label) self.num = QtGui.QSpinBox(SubsetFacet) self.num.setMaximum(20) self.num.setProperty("value", 5) self.num.setObjectName("num") self.horizontalLayout_5.addWidget(self.num) self.verticalLayout.addLayout(self.horizontalLayout_5) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.label_3 = QtGui.QLabel(SubsetFacet) self.label_3.setObjectName("label_3") self.horizontalLayout_3.addWidget(self.label_3) self.min = QtGui.QLineEdit(SubsetFacet) self.min.setObjectName("min") self.horizontalLayout_3.addWidget(self.min) self.horizontalLayout_4.addLayout(self.horizontalLayout_3) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_4 = QtGui.QLabel(SubsetFacet) self.label_4.setObjectName("label_4") self.horizontalLayout_2.addWidget(self.label_4) self.max = QtGui.QLineEdit(SubsetFacet) self.max.setObjectName("max") self.horizontalLayout_2.addWidget(self.max) self.log = QtGui.QCheckBox(SubsetFacet) self.log.setObjectName("log") self.horizontalLayout_2.addWidget(self.log) self.horizontalLayout_4.addLayout(self.horizontalLayout_2) self.verticalLayout.addLayout(self.horizontalLayout_4) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.label_2 = QtGui.QLabel(SubsetFacet) self.label_2.setObjectName("label_2") self.horizontalLayout.addWidget(self.label_2) self.color_scale = QtGui.QComboBox(SubsetFacet) self.color_scale.setObjectName("color_scale") self.horizontalLayout.addWidget(self.color_scale) self.verticalLayout.addLayout(self.horizontalLayout) self.buttonBox = QtGui.QDialogButtonBox(SubsetFacet) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") self.verticalLayout.addWidget(self.buttonBox) self.verticalLayout.setStretch(0, 5) self.retranslateUi(SubsetFacet) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), SubsetFacet.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), SubsetFacet.reject) QtCore.QMetaObject.connectSlotsByName(SubsetFacet)