import * as React from 'react'; import { WorkspaceLanguage } from './workspace'; export interface ToolbarProps { canSaveDiagram?: boolean; onSaveDiagram?: () => void; canPersistChanges?: boolean; onPersistChanges?: () => void; onForceLayout?: () => void; onClearAll?: () => void; onZoomIn?: () => void; onZoomOut?: () => void; onZoomToFit?: () => void; onExportSVG?: (fileName?: string) => void; onExportPNG?: (fileName?: string) => void; onPrint?: () => void; languages?: ReadonlyArray; selectedLanguage?: string; onChangeLanguage?: (language: string) => void; hidePanels?: boolean; } const CLASS_NAME = 'ontodia-toolbar'; export class DefaultToolbar extends React.Component { private onChangeLanguage = (event: React.SyntheticEvent) => { const value = event.currentTarget.value; this.props.onChangeLanguage(value); } private onExportSVG = () => { this.props.onExportSVG(); } private onExportPNG = () => { this.props.onExportPNG(); } private renderSaveDiagramButton() { if (!this.props.onSaveDiagram) { return null; } return ( ); } private renderPersistAuthoredChangesButton() { if (!this.props.onPersistChanges) { return null; } return ( ); } private renderLanguages() { const {selectedLanguage, languages} = this.props; if (languages.length <= 1) { return null; } return ( ); } render() { return (
{this.renderSaveDiagramButton()} {this.renderPersistAuthoredChangesButton()} {this.props.onClearAll ? ( ) : null} {this.renderLanguages()}
); } }