Skip to content

Commit

Permalink
Merge pull request #352 from bgroenks96/hotfix-override-default-input…
Browse files Browse the repository at this point in the history
…-mapping

feat: system property setting for default NiftyInputMapping.
  • Loading branch information
void256 committed Aug 10, 2015
2 parents 58eca41 + c1a2438 commit a097dd9
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 4 deletions.
10 changes: 10 additions & 0 deletions nifty-core/src/main/java/de/lessvoid/nifty/Nifty.java
Expand Up @@ -36,6 +36,7 @@
import de.lessvoid.nifty.elements.ElementMoveAction;
import de.lessvoid.nifty.elements.ElementRemoveAction;
import de.lessvoid.nifty.elements.EndOfFrameElementAction;
import de.lessvoid.nifty.input.NiftyInputMapping;
import de.lessvoid.nifty.input.NiftyMouseInputEvent;
import de.lessvoid.nifty.input.keyboard.KeyboardInputEvent;
import de.lessvoid.nifty.input.mouse.MouseInputEventProcessor;
Expand Down Expand Up @@ -2100,4 +2101,13 @@ public void setNiftyMethodInvokerDebugEnabled(final boolean debugEnabled) {
public boolean isNiftyMethodInvokerDebugEnabled() {
return niftyMethodInvokerDebugEnabled;
}

/**
* Sets the static default NiftyInputMapping used by all input event handlers.
* <b>Important note: this change will persist to all Nifty instances.</b>
*/
public static void setDefaultInputMappingType (@Nonnull final Class<? extends NiftyInputMapping> defaultInputMappingType)
{
NiftyDefaults.setDefaultInputMapping(defaultInputMappingType);
}
}
25 changes: 22 additions & 3 deletions nifty-core/src/main/java/de/lessvoid/nifty/NiftyDefaults.java
@@ -1,10 +1,15 @@
package de.lessvoid.nifty;

import de.lessvoid.nifty.loaderv2.types.RegisterEffectType;

import javax.annotation.Nonnull;

import de.lessvoid.nifty.input.NiftyInputMapping;
import de.lessvoid.nifty.input.mapping.DefaultInputMapping;
import de.lessvoid.nifty.loaderv2.types.RegisterEffectType;
import de.lessvoid.xml.tools.ClassHelper;

public class NiftyDefaults {
private static Class <? extends NiftyInputMapping> defaultNiftyInputMapping = DefaultInputMapping.class;

private NiftyDefaults() {
}

Expand Down Expand Up @@ -50,6 +55,20 @@ public static void initDefaultEffects(@Nonnull final Nifty nifty) {
nifty.registerEffect(new RegisterEffectType("textColorAnimated", "de.lessvoid.nifty.effects.impl.TextColorAnimated"));
nifty.registerEffect(new RegisterEffectType("textSize", "de.lessvoid.nifty.effects.impl.TextSize"));
nifty.registerEffect(new RegisterEffectType("textSizePulsate", "de.lessvoid.nifty.effects.impl.TextSizePulsate"));
nifty.registerEffect(new RegisterEffectType("updateScrollpanelPositionToDisplayElement", "de.lessvoid.nifty.controls.scrollbar.UpdateScrollpanelPositionToDisplayElement"));
nifty.registerEffect(new RegisterEffectType("updateScrollpanelPositionToDisplayElement", "de.lessvoid.nifty.controls.scrollbar.UpdateScrollpanelPositionToDisplayElement"));
}

@Nonnull
public static NiftyInputMapping getDefaultInputMapping() {
return ClassHelper.getInstance(defaultNiftyInputMapping);
}

static void setDefaultInputMapping(final Class<? extends NiftyInputMapping> defaultInputMappingType)
{
if (defaultInputMappingType == null)
{
return;
}
defaultNiftyInputMapping = defaultInputMappingType;
}
}
@@ -1,6 +1,7 @@
package de.lessvoid.nifty.loaderv2.types;

import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.NiftyDefaults;
import de.lessvoid.nifty.controls.Controller;
import de.lessvoid.nifty.controls.NiftyInputControl;
import de.lessvoid.nifty.controls.dynamic.attributes.ControlAttributes;
Expand Down Expand Up @@ -240,7 +241,7 @@ private NiftyInputControl createNiftyInputControl(
inputMapping = ClassHelper.getInstance(inputMappingClass, NiftyInputMapping.class);
}
if (inputMapping == null) {
inputMapping = new DefaultInputMapping();
inputMapping = NiftyDefaults.getDefaultInputMapping();
}

return new NiftyInputControl(controller, inputMapping);
Expand Down

0 comments on commit a097dd9

Please sign in to comment.