public boolean cancelProduction() {
		if (isProductionInterfaceOpen()) {
			if (isProductionComplete()) {
				if (Condition.wait(new Callable<Boolean>() {
					@Override
					public Boolean call() throws Exception {
						return !isProductionInterfaceOpen();
					}
				})) {
					return true;
				}
			}

			if (ctx.widgets.component(WIDGET_PRODUCTION_MAIN, WIDGET_PRODUCTION_CANCEL).interact("Cancel") && Condition.wait(new Callable<Boolean>() {
				@Override
				public Boolean call() throws Exception {
					return !isProductionInterfaceOpen();
				}
			})) {
				ctx.sleep(250);
			}
		}

		return !isProductionInterfaceOpen();
	}