awv3
Version:
⚡ AWV3 embedded CAD
55 lines (43 loc) • 1.42 kB
JavaScript
import DragHandler from './drag';
import DrawHandler from './draw';
import AngleHandler from './angle';
import FilletHandler from './fillet';
import DuplicateHandler from './duplicate';
import TrimHandler from './trim';
import RevolveHandler from './revolve';
function getHandlerClass(name) {
switch (name) {
case 'drag':
return DragHandler;
case 'point':
case 'line':
case 'arccenter':
case 'arcmiddle':
case 'arctangent':
case 'circle':
return DrawHandler;
case 'angle':
return AngleHandler;
case 'fillet':
return FilletHandler;
case 'duplicate':
return DuplicateHandler;
case 'trim':
return TrimHandler;
case 'revolve':
return RevolveHandler;
}
} // destroy oldHandler (if needed) and return the new handler
export default function Handler(sketcher, name, oldHandler, activateHandlerInfo) {
var oldClass = getHandlerClass(oldHandler && oldHandler.name),
newClass = getHandlerClass(name);
var handler = oldHandler;
if (oldClass !== newClass) {
oldHandler && oldHandler.destroy();
handler = new newClass(sketcher, name, activateHandlerInfo);
handler.addInteractions();
}
if (newClass === DrawHandler) handler.switchMode(name);
return handler;
} // Support hot reloading
if (module.hot) module.hot.accept(['./drag', './draw', './angle', './fillet', './duplicate', './trim', './revolve']);