Remove some buttons from weed detector title bar
parent
455846b831
commit
d167cabf8f
|
@ -17,7 +17,7 @@ export class CameraCalibration extends
|
|||
|
||||
render() {
|
||||
return (
|
||||
<Widget className="weed-detector-widget coming-soon">
|
||||
<Widget className="weed-detector-widget">
|
||||
<TitleBar
|
||||
title={"Camera Calibration"}
|
||||
help={t(ToolTips.CAMERA_CALIBRATION)}
|
||||
|
|
|
@ -23,9 +23,9 @@ export function WeedDetectorConfig(props: SettingsMenuProps) {
|
|||
<BlurableInput type="number"
|
||||
id={conf}
|
||||
value={"" + envGet(conf, props.values)}
|
||||
onCommit={e => props.onChange(conf, parseInt(e.currentTarget.value, 10))}
|
||||
onCommit={e => props.onChange(conf, parseFloat(e.currentTarget.value))}
|
||||
placeholder={label} />
|
||||
</div>
|
||||
</div>;
|
||||
};
|
||||
|
||||
let setDDI = (k: keyof WD_ENV) => (d: DropDownItem) => {
|
||||
|
@ -34,13 +34,13 @@ export function WeedDetectorConfig(props: SettingsMenuProps) {
|
|||
} else {
|
||||
throw new Error("Weed detector got a non-numeric value");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let find = (needle: keyof WD_ENV): DropDownItem => {
|
||||
let wow = envGet(needle, props.values);
|
||||
let ok = SPECIAL_VALUE_DDI[wow];
|
||||
return ok || NULL_CHOICE;
|
||||
}
|
||||
};
|
||||
|
||||
return <div>
|
||||
<label htmlFor="invert_hue_selection">
|
||||
|
@ -107,4 +107,4 @@ export function WeedDetectorConfig(props: SettingsMenuProps) {
|
|||
</Col>
|
||||
</Row>
|
||||
</div>;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -67,16 +67,13 @@ export class WeedDetector
|
|||
});
|
||||
|
||||
render() {
|
||||
return <Widget className="weed-detector-widget coming-soon">
|
||||
return <Widget className="weed-detector-widget">
|
||||
<TitleBar
|
||||
onDeletionClick={this.clearWeeds}
|
||||
deletionProgress={this.state.deletionProgress}
|
||||
onSave={() => { console.log("TODO"); }}
|
||||
onTest={this.test}
|
||||
title={"Weed Detector"}
|
||||
help={t(ToolTips.WEED_DETECTOR)}
|
||||
env={this.props.env}
|
||||
/>
|
||||
help={t(ToolTips.WEED_DETECTOR)} />
|
||||
<WidgetBody>
|
||||
<Row>
|
||||
<Col sm={12}>
|
||||
|
|
|
@ -6,15 +6,17 @@ import { WD_ENV } from "./remote_env/interfaces";
|
|||
import { envSave } from "./remote_env/actions";
|
||||
import { Popover } from "@blueprintjs/core";
|
||||
|
||||
type ClickHandler = React.EventHandler<React.MouseEvent<HTMLButtonElement>>;
|
||||
|
||||
interface Props {
|
||||
onSave?(): void;
|
||||
onTest?(): void;
|
||||
onDeletionClick?(): void;
|
||||
onCalibrate?(): void;
|
||||
onSave?: ClickHandler;
|
||||
onTest?: ClickHandler;
|
||||
onDeletionClick?: ClickHandler;
|
||||
onCalibrate?: ClickHandler;
|
||||
deletionProgress?: string | undefined;
|
||||
title: string;
|
||||
help: string;
|
||||
env: Partial<WD_ENV>;
|
||||
env?: Partial<WD_ENV>;
|
||||
}
|
||||
|
||||
export function TitleBar({
|
||||
|
@ -32,37 +34,32 @@ export function TitleBar({
|
|||
<button
|
||||
hidden={!onSave}
|
||||
onClick={onSave}
|
||||
className="fb-button green"
|
||||
>
|
||||
className="fb-button green" >
|
||||
{t("SAVE")}
|
||||
</button>
|
||||
<button
|
||||
hidden={!onTest}
|
||||
onClick={onTest}
|
||||
className="fb-button yellow"
|
||||
>
|
||||
className="fb-button yellow" >
|
||||
{t("TEST")}
|
||||
</button>
|
||||
<button
|
||||
hidden={!onDeletionClick}
|
||||
onClick={onDeletionClick}
|
||||
className="fb-button red"
|
||||
>
|
||||
className="fb-button red" >
|
||||
{deletionProgress || t("CLEAR WEEDS")}
|
||||
</button>
|
||||
<button
|
||||
hidden={!onCalibrate}
|
||||
onClick={() => { }}
|
||||
className="fb-button green"
|
||||
>
|
||||
className="fb-button green" >
|
||||
{t("Calibrate")}
|
||||
</button>
|
||||
<Popover>
|
||||
<i className="fa fa-cog" />
|
||||
<WeedDetectorConfig
|
||||
{(env && <WeedDetectorConfig
|
||||
values={env}
|
||||
onChange={envSave}
|
||||
/>
|
||||
onChange={envSave} />)}
|
||||
</Popover>
|
||||
</WidgetHeader>
|
||||
);
|
||||
|
|
|
@ -9,7 +9,7 @@ const SelectComponent = Select.ofType<DropDownItem>();
|
|||
|
||||
type PossibleReferences =
|
||||
| "Sequences"
|
||||
| "Regimens"
|
||||
| "Regimens";
|
||||
|
||||
interface ParentMenu {
|
||||
title: string;
|
||||
|
@ -65,7 +65,7 @@ export class FilterSearch extends React.Component<Props, Partial<State>> {
|
|||
rightIconName="double-caret-vertical"
|
||||
text={item ? item.label : t("(No selection)")}
|
||||
/>
|
||||
</SelectComponent>
|
||||
</SelectComponent>;
|
||||
}
|
||||
|
||||
private subMenu(params: ISelectItemRendererProps<DropDownItem>) {
|
||||
|
@ -75,7 +75,7 @@ export class FilterSearch extends React.Component<Props, Partial<State>> {
|
|||
key={item.label || index}
|
||||
onClick={handleClick}
|
||||
text={`${item.label}`}
|
||||
/>
|
||||
/>;
|
||||
}
|
||||
|
||||
private default(params: ISelectItemRendererProps<DropDownItem>) {
|
||||
|
@ -85,7 +85,7 @@ export class FilterSearch extends React.Component<Props, Partial<State>> {
|
|||
key={item.label || index}
|
||||
onClick={handleClick}
|
||||
text={`${item.label}`}
|
||||
/>
|
||||
/>;
|
||||
}
|
||||
|
||||
private filter(query: string, item: DropDownItem, index: number) {
|
||||
|
@ -95,7 +95,7 @@ export class FilterSearch extends React.Component<Props, Partial<State>> {
|
|||
|
||||
private handleValueChange = (item: DropDownItem) => {
|
||||
this.props.onChange(item);
|
||||
this.setState({ item })
|
||||
this.setState({ item });
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue