@Override public Object getAdapter(Class key) { if (key == SnapToHelper.class) { List<SnapToHelper> helpers = new ArrayList<SnapToHelper>(); if (Boolean.TRUE.equals(getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED))) { helpers.add(new SnapToGeometry(this)); } if (Boolean.TRUE.equals(getViewer().getProperty(SnapToGrid.PROPERTY_GRID_ENABLED))) { helpers.add(new SnapToGrid(this)); } if(helpers.size()==0) { return null; } else { return new CompoundSnapToHelper(helpers.toArray(new SnapToHelper[0])); } } if (key == IPropertySource.class) { return new GW4EGraphEditPartProperties(this); } return null; }
/** * This method can be overridden by clients to customize the snapping behavior. * * @param request * the <code>ChangeBoundsRequest</code> from which the move delta can be extracted and updated * @since 3.4 */ protected void snapPoint(ChangeBoundsRequest request) { Point moveDelta = request.getMoveDelta(); if (editpart != null && getOperationSet().size() > 0) snapToHelper = (SnapToHelper) editpart.getParent().getAdapter(SnapToHelper.class); if (snapToHelper != null && !getCurrentInput().isModKeyDown(MODIFIER_NO_SNAPPING)) { PrecisionRectangle baseRect = sourceRectangle.getPreciseCopy(); PrecisionRectangle jointRect = compoundSrcRect.getPreciseCopy(); baseRect.translate(moveDelta); jointRect.translate(moveDelta); PrecisionPoint preciseDelta = new PrecisionPoint(moveDelta); snapToHelper.snapPoint(request, PositionConstants.HORIZONTAL | PositionConstants.VERTICAL, new PrecisionRectangle[] { baseRect, jointRect }, preciseDelta); request.setMoveDelta(preciseDelta); } }
/** * The creation tool only works by clicking mouse button 1 (the left mouse * button in a right-handed world). If any other button is pressed, the tool * goes into an invalid state. Otherwise, it goes into the drag state, * updates the request's location and calls * {@link TargetingTool#lockTargetEditPart(EditPart)} with the edit part * that was just clicked on. * * @see org.eclipse.gef.tools.AbstractTool#handleButtonDown(int) */ protected boolean handleButtonDown(int button) { // Log.info("CreationTool.HandleButtonDown(" + button + ")"); if (button != 1) { setState(STATE_INVALID); handleInvalidInput(); return true; } if (stateTransition(STATE_INITIAL, STATE_DRAG)) { getCreateRequest().setLocation(getLocation()); lockTargetEditPart(getTargetEditPart()); // Snap only when size on drop is employed if (getTargetEditPart() != null) helper = (SnapToHelper) getTargetEditPart().getAdapter( SnapToHelper.class); } return true; }
/** * {@inheritDoc} In this {@link EditPart} this method add adapter types for creating a * {@link SnapToHelper} when the editor is in snapping mode (either to grid or to shapes). */ @Override public Object getAdapter(final Class key) { if (key == SnapToHelper.class) { List<SnapToHelper> helpers = new ArrayList<SnapToHelper>(); if (Boolean.TRUE.equals(getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED))) { helpers.add(new SnapToGeometry(this)); } if (Boolean.TRUE.equals(getViewer().getProperty(SnapToGrid.PROPERTY_GRID_ENABLED))) { helpers.add(new SnapToGrid(this)); } if (helpers.size() == 0) { return null; } else { return new CompoundSnapToHelper(helpers.toArray(new SnapToHelper[0])); } } return super.getAdapter(key); }
@SuppressWarnings("rawtypes") @Override public Object getAdapter(Class key) { if (IPropertySource.class == key) { return getPropertySource(); } if (key == SnapToHelper.class) { List<SnapToHelper> helpers = new ArrayList<SnapToHelper>(); if (Boolean.TRUE.equals(getViewer().getProperty( SnapToGeometry.PROPERTY_SNAP_ENABLED))) { helpers.add(new SnapToGeometry(this)); } if (Boolean.TRUE.equals(getViewer().getProperty( SnapToGrid.PROPERTY_GRID_ENABLED))) { helpers.add(new SnapToGrid(this)); } if (helpers.size() == 0) { return null; } else { return new CompoundSnapToHelper( helpers.toArray(new SnapToHelper[0])); } } return super.getAdapter(key); }
public Object getAdapter(Class adapter) { if (adapter == SnapToHelper.class) { List snapStrategies = new ArrayList(); Boolean val = (Boolean) getViewer() .getProperty(RulerProvider.PROPERTY_RULER_VISIBILITY); if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGuides(this)); val = (Boolean) getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED); if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGeometry(this)); val = (Boolean) getViewer().getProperty(SnapToGrid.PROPERTY_GRID_ENABLED); if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGrid(this)); if (snapStrategies.size() == 0) return null; if (snapStrategies.size() == 1) return snapStrategies.get(0); SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()]; for (int i = 0; i < snapStrategies.size(); i++) ss[i] = (SnapToHelper) snapStrategies.get(i); return new CompoundSnapToHelper(ss); } return super.getAdapter(adapter); }
@Override public Object getAdapter(final Class key) { if (key == SnapToHelper.class) { final List<SnapToHelper> helpers = new ArrayList<SnapToHelper>(); helpers.add(new SnapToGeometry(this)); if (Boolean.TRUE.equals(getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED))) { helpers.add(new SnapToGrid(this)); } // if (Boolean.TRUE.equals(getViewer().getProperty( // SnapToGrid.PROPERTY_GRID_ENABLED))) { // helpers.add(new SnapToGrid(this)); // } if (helpers.size() == 0) { return null; } else { return new CompoundSnapToHelper(helpers.toArray(new SnapToHelper[0])); } } return super.getAdapter(key); }
@Override public Object getAdapter(Class key) { if (key == SnapToHelper.class) { List<SnapToHelper> helpers = new ArrayList<SnapToHelper>(); helpers.add(new SnapToGeometry(this)); if (Boolean.TRUE.equals(getViewer().getProperty( SnapToGeometry.PROPERTY_SNAP_ENABLED))) { helpers.add(new SnapToGrid(this)); } // if (Boolean.TRUE.equals(getViewer().getProperty( // SnapToGrid.PROPERTY_GRID_ENABLED))) { // helpers.add(new SnapToGrid(this)); // } if (helpers.size() == 0) { return null; } else { return new CompoundSnapToHelper( helpers.toArray(new SnapToHelper[0])); } } return super.getAdapter(key); }
public Object getAdapter(Class adapter) { if (adapter == SnapToHelper.class) { List<SnapToHelper> snapStrategies = new ArrayList<SnapToHelper>(); Boolean val = (Boolean)getViewer().getProperty(RulerProvider.PROPERTY_RULER_VISIBILITY); /*if (val != null && val.booleanValue())*/ //snapStrategies.add(new SnapToGuides((GraphicalEditPart) this.getParent())); val = (Boolean)getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED); //if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGeometry(this){ @Override protected List generateSnapPartsList(List exclusions) { List children = super.generateSnapPartsList(exclusions); children.add(container);//add snapToParent edges behaviour return children; } }); val = (Boolean)getViewer().getProperty(SnapToGrid.PROPERTY_GRID_ENABLED); if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGrid(this)); if (snapStrategies.size() == 0) return null; if (snapStrategies.size() == 1) return snapStrategies.get(0); SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()]; for (int i = 0; i < snapStrategies.size(); i++) ss[i] = (SnapToHelper)snapStrategies.get(i); return new CompoundSnapToHelper(ss); } return super.getAdapter(adapter); }
@SuppressWarnings("rawtypes") @Override public Object getAdapter(Class key) { if (key == SnapToHelper.class) { List<SnapToHelper> snapStrategies = new ArrayList<SnapToHelper>(); Boolean val = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SHOWRULER, Boolean.TRUE); Boolean stg = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGUIDES, Boolean.TRUE); if (val.booleanValue() && stg != null && stg.booleanValue()) snapStrategies.add(new SnapToGuides(this)); val = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGEOMETRY, Boolean.TRUE); if (val.booleanValue()) { SnapToGeometryThreshold snapper = new SnapToGeometryThreshold(this); snapper.setThreshold(2.0); snapStrategies.add(snapper); } val = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGRID, Boolean.TRUE); if (val.booleanValue()) snapStrategies.add(new SnapToGrid(this)); if (snapStrategies.size() == 0) return null; if (snapStrategies.size() == 1) return snapStrategies.get(0); SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()]; for (int i = 0; i < snapStrategies.size(); i++) ss[i] = snapStrategies.get(i); return new CompoundSnapToHelper(ss); } return super.getAdapter(key); }
@SuppressWarnings("rawtypes") @Override public Object getAdapter(Class key) { if (key == SnapToHelper.class) { List<SnapToHelper> snapStrategies = new ArrayList<SnapToHelper>(); Boolean val = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SHOWRULER, Boolean.TRUE); Boolean stg = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGUIDES, Boolean.TRUE); if (val.booleanValue() && stg != null && stg.booleanValue()) snapStrategies.add(new SnapToGuides(this)); val = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGEOMETRY, Boolean.TRUE); if (val.booleanValue()) { SnapToGeometryThreshold snapper = new SnapToGeometryThreshold(this); snapper.setThreshold(6.0); snapStrategies.add(snapper); } val = jConfig.getPropertyBoolean(RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGRID, Boolean.TRUE); if (val.booleanValue()) snapStrategies.add(new SnapToGrid(this)); if (snapStrategies.size() == 0) return null; if (snapStrategies.size() == 1) return snapStrategies.get(0); SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()]; for (int i = 0; i < snapStrategies.size(); i++) ss[i] = snapStrategies.get(i); return new CompoundSnapToHelper(ss); } return super.getAdapter(key); }
@Override public Object getAdapter(Class adapter) { if (adapter == SnapToHelper.class) { List snapStrategies = new ArrayList(); Boolean val = (Boolean) getViewer() .getProperty(RulerProvider.PROPERTY_RULER_VISIBILITY); if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGuides(this)); val = (Boolean) getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED); if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGeometry(this)); val = (Boolean) getViewer().getProperty(SnapToGrid.PROPERTY_GRID_ENABLED); if (val != null && val.booleanValue()) snapStrategies.add(new SnapToGrid(this)); if (snapStrategies.size() == 0) return null; if (snapStrategies.size() == 1) return snapStrategies.get(0); SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()]; for (int i = 0; i < snapStrategies.size(); i++) ss[i] = (SnapToHelper) snapStrategies.get(i); return new CompoundSnapToHelper(ss); } return super.getAdapter(adapter); }
@SuppressWarnings("rawtypes") @Override public Object getAdapter(Class key) { if (key == SnapToHelper.class) { List<SnapToHelper> snapStrategies = new ArrayList<SnapToHelper>(); Boolean val = jConfig.getPropertyBoolean( RulersGridPreferencePage.P_PAGE_RULERGRID_SHOWRULER, Boolean.TRUE); Boolean stg = jConfig.getPropertyBoolean( RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGUIDES, Boolean.TRUE); if (val.booleanValue() && stg != null && stg.booleanValue()) snapStrategies.add(new SnapToGuides(this)); val = jConfig.getPropertyBoolean( RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGEOMETRY, Boolean.TRUE); if (val.booleanValue()) { SnapToGeometryThreshold snapper = new SnapToGeometryThreshold( this); snapper.setThreshold(2.0); snapStrategies.add(snapper); } val = jConfig.getPropertyBoolean( RulersGridPreferencePage.P_PAGE_RULERGRID_SNAPTOGRID, Boolean.TRUE); if (val.booleanValue()) snapStrategies.add(new SnapToGrid(this)); if (snapStrategies.size() == 0) return null; if (snapStrategies.size() == 1) return snapStrategies.get(0); SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()]; for (int i = 0; i < snapStrategies.size(); i++) ss[i] = snapStrategies.get(i); return new CompoundSnapToHelper(ss); } return super.getAdapter(key); }