Search in sources :

Example 6 with StringUtils.capitalize

use of org.apache.commons.lang3.StringUtils.capitalize in project polymap4-core by Polymap4.

the class ConstantRasterColorMapTypeEditor method createContents.

@Override
public Composite createContents(Composite parent) {
    Composite contents = super.createContents(parent);
    Combo combo = new Combo(contents, SWT.SINGLE | SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
    combo.setItems(Arrays.stream(RasterColorMapType.values()).map(type -> StringUtils.capitalize(type.toString().toLowerCase())).collect(Collectors.toList()).toArray(new String[0]));
    prop.opt().ifPresent(constant -> {
        combo.select(constant.type.get().ordinal());
    });
    combo.addSelectionListener(UIUtils.selectionListener(ev -> {
        RasterColorMapType selected = Arrays.stream(RasterColorMapType.values()).filter(v -> v.ordinal() == combo.getSelectionIndex()).findAny().get();
        prop.get().type.set(selected);
    }));
    return contents;
}
Also used : StylePropertyFieldSite(org.polymap.core.style.ui.StylePropertyFieldSite) Arrays(java.util.Arrays) Combo(org.eclipse.swt.widgets.Combo) StylePropertyEditor(org.polymap.core.style.ui.StylePropertyEditor) RasterColorMapType(org.polymap.core.style.model.raster.RasterColorMapType) ConstantRasterColorMapType(org.polymap.core.style.model.raster.ConstantRasterColorMapType) Collectors(java.util.stream.Collectors) StringUtils(org.apache.commons.lang3.StringUtils) IMessages(org.polymap.core.runtime.i18n.IMessages) Composite(org.eclipse.swt.widgets.Composite) SWT(org.eclipse.swt.SWT) UIUtils(org.polymap.core.ui.UIUtils) Messages(org.polymap.core.style.Messages) RasterColorMapType(org.polymap.core.style.model.raster.RasterColorMapType) ConstantRasterColorMapType(org.polymap.core.style.model.raster.ConstantRasterColorMapType) Composite(org.eclipse.swt.widgets.Composite) Combo(org.eclipse.swt.widgets.Combo)

Example 7 with StringUtils.capitalize

use of org.apache.commons.lang3.StringUtils.capitalize in project Saber-Bot by notem.

the class ParsingUtilities method parseMessageFormat.

/**
 * @param format the base string to parse into a message
 * @param entry the entry associated with the message
 * @return a new message which has entry specific information inserted into the format string
 */
public static String parseMessageFormat(String format, ScheduleEntry entry, boolean displayComments) {
    // determine time formatter from schedule settings
    String clock = Main.getScheduleManager().getClockFormat(entry.getChannelId());
    DateTimeFormatter timeFormatter;
    if (clock.equalsIgnoreCase("12"))
        timeFormatter = DateTimeFormatter.ofPattern("hh:mm a");
    else
        timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
    // advanced parsing
    /*
         * parses the format string using regex grouping
         * allows for an 'if element exists, print string + element + string' type of insertion
         */
    Matcher matcher = Pattern.compile("%\\{(.*?)}").matcher(format);
    while (matcher.find()) {
        String group = matcher.group();
        String trimmed = group.substring(2, group.length() - 1);
        StringBuilder sub = new StringBuilder();
        if (!trimmed.isEmpty()) {
            Matcher matcher2 = Pattern.compile("\\[.*?]").matcher(trimmed);
            if (// advanced comment
            trimmed.matches("(\\[.*?])?c\\d+(\\[.*?])?") && displayComments) {
                int i = Integer.parseInt(trimmed.replaceAll("(\\[.*?])?c|\\[.*?]", ""));
                if (entry.getComments().size() >= i && i > 0) {
                    sub.append(messageFormatHelper(entry.getComments().get(i - 1), matcher2));
                }
            } else if (// advanced start
            trimmed.matches("(\\[.*?])?s(\\[.*?])?")) {
                if (!entry.hasStarted()) {
                    while (matcher2.find()) {
                        sub.append(matcher2.group().replaceAll("[\\[\\]]", ""));
                    }
                }
            } else if (// advanced end
            trimmed.matches("(\\[.*?])?e(\\[.*?])?")) {
                if (entry.hasStarted()) {
                    while (matcher2.find()) {
                        sub.append(matcher2.group().replaceAll("[\\[\\]]", ""));
                    }
                }
            } else if (// advanced end
            trimmed.matches("(\\[.*?])?start .+(\\[.*?])?")) {
                String formatter = trimmed.replaceAll("start ", "").replaceAll("^[GuyDMLdQqYwWEeCFahkKHmsSAnNVzOXxZp'\\[\\]#{}.,\\- ]", " ").replaceAll("\\[.*?]", "");
                String startString = "";
                try {
                    startString = entry.getStart().format(DateTimeFormatter.ofPattern(formatter));
                } catch (Exception ignored) {
                }
                sub.append(startString);
            } else if (// advanced end
            trimmed.matches("(\\[.*?])?end .+(\\[.*?])?")) {
                String formatter = trimmed.replaceAll("end ", "").replaceAll("^[GuyDMLdQqYwWEeCFahkKHmsSAnNVzOXxZp'\\[\\]#{}.,\\- ]", " ").replaceAll("\\[.*?]", "");
                String endString = "";
                try {
                    endString = entry.getEnd().format(DateTimeFormatter.ofPattern(formatter));
                } catch (Exception ignored) {
                }
                sub.append(endString);
            } else if (// advanced remind in minutes
            trimmed.matches("(\\[.*?])?m(\\[.*?])?")) {
                if (!entry.hasStarted()) {
                    long minutes = ZonedDateTime.now().until(entry.getStart(), ChronoUnit.MINUTES);
                    if (minutes > 0) {
                        sub.append(messageFormatHelper("" + (minutes + 1), matcher2));
                    }
                } else {
                    long minutes = ZonedDateTime.now().until(entry.getEnd(), ChronoUnit.MINUTES);
                    if (minutes > 0) {
                        sub.append(messageFormatHelper("" + (minutes + 1), matcher2));
                    }
                }
            } else if (// advanced remind in hours
            trimmed.matches("(\\[.*?])?h(\\[.*?])?")) {
                if (!entry.hasStarted()) {
                    long minutes = ZonedDateTime.now().until(entry.getStart(), ChronoUnit.MINUTES);
                    if (minutes > 0) {
                        sub.append(messageFormatHelper("" + (minutes + 1) / 60, matcher2));
                    }
                } else {
                    long minutes = ZonedDateTime.now().until(entry.getEnd(), ChronoUnit.MINUTES);
                    if (minutes > 0) {
                        sub.append(messageFormatHelper("" + (minutes + 1) / 60, matcher2));
                    }
                }
            } else if (// rsvp count
            trimmed.matches("(\\[.*?])?rsvp .+(\\[.*?])?")) {
                String name = trimmed.replaceAll("rsvp ", "").replaceAll("\\[.*?]", "");
                List<String> members = entry.getRsvpMembers().get(name);
                if (members != null) {
                    sub.append(messageFormatHelper("" + members.size(), matcher2));
                }
            } else if (// rsvp mentions
            trimmed.matches("(\\[.*?])?mention .+(\\[.*?])?")) {
                String name = trimmed.replaceAll("mention ", "").replaceAll("\\[.*?]", "");
                List<String> users = compileUserList(entry, name);
                if (// a valid mention option was used
                users != null) {
                    StringBuilder userMentions = new StringBuilder();
                    for (int i = 0; i < users.size(); i++) {
                        if (users.get(i).matches("\\d+"))
                            userMentions.append("<@").append(users.get(i)).append(">");
                        if (i + 1 < users.size())
                            userMentions.append(", ");
                    }
                    sub.append(messageFormatHelper(userMentions.toString(), matcher2));
                }
            } else if (trimmed.matches("(\\[.*?])?mentionm .+(\\[.*?])?") || // rsvp mentions
            trimmed.matches("(\\[.*?])?list .+(\\[.*?])?")) {
                String name = trimmed.replace("mentionm ", "").replace("list", "").replaceAll("\\[.*?]", "");
                List<String> users = compileUserList(entry, name);
                if (users != null) {
                    StringBuilder userMentions = new StringBuilder();
                    for (int i = 0; i < users.size(); i++) {
                        if (users.get(i).matches("\\d+")) {
                            Member member = Main.getShardManager().getJDA(entry.getGuildId()).getGuildById(entry.getGuildId()).getMemberById(users.get(i));
                            userMentions.append(member.getEffectiveName());
                        }
                        if (i + 1 < users.size())
                            userMentions.append(", ");
                    }
                    sub.append(messageFormatHelper(userMentions.toString(), matcher2));
                }
            } else if (// advanced title url
            trimmed.matches("(\\[.*?])?u(\\[.*?])?")) {
                if (entry.getTitleUrl() != null) {
                    sub.append(messageFormatHelper(entry.getTitleUrl(), matcher2));
                }
            } else if (// advanced image url
            trimmed.matches("(\\[.*?])?v(\\[.*?])?")) {
                if (entry.getImageUrl() != null) {
                    sub.append(messageFormatHelper(entry.getImageUrl(), matcher2));
                }
            } else if (// advanced thumbnail url
            trimmed.matches("(\\[.*?])?w(\\[.*?])?")) {
                if (entry.getThumbnailUrl() != null) {
                    sub.append(messageFormatHelper(entry.getThumbnailUrl(), matcher2));
                }
            }
        }
        format = format.replace(group, sub.toString());
    }
    // legacy parsing
    /*
         * parses the format string character by character looking for % characters
         * a token is one % character followed by a key character
         */
    StringBuilder announceMsg = new StringBuilder();
    for (int i = 0; i < format.length(); i++) {
        char ch = format.charAt(i);
        if (ch == '%' && i + 1 < format.length()) {
            i++;
            ch = format.charAt(i);
            switch(ch) {
                case 'c':
                    if (i + 1 < format.length() && displayComments) {
                        ch = format.charAt(i + 1);
                        if (Character.isDigit(ch)) {
                            i++;
                            int x = Integer.parseInt("" + ch);
                            if (entry.getComments().size() >= x && x != 0) {
                                String parsedComment = ParsingUtilities.parseMessageFormat(entry.getComments().get(x - 1), entry, false);
                                announceMsg.append(parsedComment);
                            }
                        }
                    }
                    break;
                case 'f':
                    if (displayComments) {
                        // if this call of the parser is nested, don't insert comments
                        announceMsg.append(String.join("\n", entry.getComments().stream().map(comment -> ParsingUtilities.parseMessageFormat(comment, entry, false)).collect(Collectors.toList())));
                    }
                    break;
                case 'a':
                    if (!entry.hasStarted()) {
                        announceMsg.append("begins");
                        long minutes = ZonedDateTime.now().until(entry.getStart(), ChronoUnit.MINUTES);
                        if (minutes > 0) {
                            if (minutes > 120)
                                announceMsg.append(" in ").append((minutes + 1) / 60).append(" hours");
                            else
                                announceMsg.append(" in ").append(minutes + 1).append(" minutes");
                        }
                    } else {
                        announceMsg.append("ends");
                        long minutes = ZonedDateTime.now().until(entry.getEnd(), ChronoUnit.MINUTES);
                        if (minutes > 0) {
                            if (minutes > 120)
                                announceMsg.append(" in ").append((minutes + 1) / 60).append(" hours");
                            else
                                announceMsg.append(" in ").append(minutes + 1).append(" minutes");
                        }
                    }
                    break;
                case 'b':
                    if (!entry.hasStarted())
                        announceMsg.append("begins");
                    else
                        announceMsg.append("ends");
                    break;
                case 'x':
                    if (!entry.hasStarted()) {
                        long minutes = ZonedDateTime.now().until(entry.getStart(), ChronoUnit.MINUTES);
                        if (minutes > 0) {
                            if (minutes > 120)
                                announceMsg.append(" in ").append((minutes + 1) / 60).append(" hours");
                            else
                                announceMsg.append(" in ").append(minutes + 1).append(" minutes");
                        }
                    } else {
                        long minutes = ZonedDateTime.now().until(entry.getEnd(), ChronoUnit.MINUTES);
                        if (minutes > 0) {
                            if (minutes > 120)
                                announceMsg.append(" in ").append((minutes + 1) / 60).append(" hours");
                            else
                                announceMsg.append(" in ").append(minutes + 1).append(" minutes");
                        }
                    }
                    break;
                case 's':
                    announceMsg.append(entry.getStart().format(timeFormatter));
                    break;
                case 'e':
                    announceMsg.append(entry.getEnd().format(timeFormatter));
                    break;
                case 't':
                    announceMsg.append(entry.getTitle());
                    break;
                case 'd':
                    announceMsg.append(String.format("%02d", entry.getStart().getDayOfMonth()));
                    break;
                case 'D':
                    announceMsg.append(StringUtils.capitalize(entry.getStart().getDayOfWeek().toString()));
                    break;
                case 'm':
                    announceMsg.append(String.format("%02d", entry.getStart().getMonthValue()));
                    break;
                case 'M':
                    announceMsg.append(StringUtils.capitalize(entry.getStart().getMonth().toString()));
                    break;
                case 'y':
                    announceMsg.append(entry.getStart().getYear());
                    break;
                case 'i':
                    announceMsg.append(ParsingUtilities.intToEncodedID(entry.getId()));
                    break;
                case '%':
                    announceMsg.append('%');
                    break;
                case 'u':
                    announceMsg.append(entry.getTitleUrl() == null ? "" : entry.getTitleUrl());
                    break;
                case 'v':
                    announceMsg.append(entry.getImageUrl() == null ? "" : entry.getImageUrl());
                    break;
                case 'w':
                    announceMsg.append(entry.getThumbnailUrl() == null ? "" : entry.getThumbnailUrl());
                    break;
                case 'n':
                    announceMsg.append("\n");
                    break;
                case 'h':
                    announceMsg.append(String.format("%02d", entry.getStart().getHour()));
                    break;
                case 'k':
                    announceMsg.append(String.format("%02d", entry.getStart().getMinute()));
                    break;
                case 'l':
                    announceMsg.append(entry.getLocation());
                    break;
            }
        } else {
            announceMsg.append(ch);
        }
    }
    return announceMsg.toString();
}
Also used : java.util(java.util) net.dv8tion.jda.core.entities(net.dv8tion.jda.core.entities) ZonedDateTime(java.time.ZonedDateTime) StringUtils(org.apache.commons.lang3.StringUtils) ScheduleEntry(ws.nmathe.saber.core.schedule.ScheduleEntry) Collectors(java.util.stream.Collectors) ByteBuffer(java.nio.ByteBuffer) ZoneId(java.time.ZoneId) ChronoUnit(java.time.temporal.ChronoUnit) Matcher(java.util.regex.Matcher) Permission(net.dv8tion.jda.core.Permission) LocalDate(java.time.LocalDate) DateTimeFormatter(java.time.format.DateTimeFormatter) LocalTime(java.time.LocalTime) JDA(net.dv8tion.jda.core.JDA) Main(ws.nmathe.saber.Main) Pattern(java.util.regex.Pattern) Matcher(java.util.regex.Matcher) DateTimeFormatter(java.time.format.DateTimeFormatter)

Example 8 with StringUtils.capitalize

use of org.apache.commons.lang3.StringUtils.capitalize in project RFToolsControl by McJty.

the class GuiProgrammer method createValuePanel.

private Panel createValuePanel(ParameterDescription parameter, IIcon icon, IconHolder iconHolder, String tempDefault, boolean constantOnly) {
    Label<?> label = (Label<?>) new Label(mc, this).setText(StringUtils.capitalize(parameter.getName()) + ":").setHorizontalAlignment(HorizontalAlignment.ALIGH_LEFT).setDesiredHeight(13).setLayoutHint(new PositionalLayout.PositionalHint(0, 0, 53, 13));
    List<String> description = new ArrayList<>(parameter.getDescription());
    if (parameter.isOptional()) {
        description.set(description.size() - 1, description.get(description.size() - 1) + TextFormatting.GOLD + " [Optional]");
    }
    if (tempDefault != null && !tempDefault.isEmpty()) {
        description.add(TextFormatting.BLUE + tempDefault);
    }
    String[] tooltips = description.toArray(new String[description.size()]);
    TextField field = new TextField(mc, this).setText(tempDefault).setTooltips(tooltips).setDesiredHeight(13).setEditable(false).setLayoutHint(new PositionalLayout.PositionalHint(0, 12, 68, 13));
    Button button = new Button(mc, this).setText("...").setDesiredHeight(13).setTooltips(tooltips).addButtonEvent(w -> openValueEditor(icon, iconHolder, parameter, field, constantOnly)).setLayoutHint(new PositionalLayout.PositionalHint(58, 0, 11, 13));
    return new Panel(mc, this).setLayout(new PositionalLayout()).addChild(label).addChild(field).addChild(button).setDesiredWidth(68);
}
Also used : GenericGuiContainer(mcjty.lib.container.GenericGuiContainer) ProgramCardInstance(mcjty.rftoolscontrol.logic.grid.ProgramCardInstance) GeneralConfiguration(mcjty.rftoolscontrol.config.GeneralConfiguration) OpcodeCategory(mcjty.rftoolscontrol.api.code.OpcodeCategory) Opcode(mcjty.rftoolscontrol.api.code.Opcode) ParameterDescription(mcjty.rftoolscontrol.api.parameters.ParameterDescription) ParameterEditors(mcjty.rftoolscontrol.logic.editors.ParameterEditors) Keyboard(org.lwjgl.input.Keyboard) StringUtils(org.apache.commons.lang3.StringUtils) StyleConfig(mcjty.lib.base.StyleConfig) Panel(mcjty.lib.gui.widgets.Panel) Pair(org.apache.commons.lang3.tuple.Pair) PositionalLayout(mcjty.lib.gui.layout.PositionalLayout) ParameterEditor(mcjty.rftoolscontrol.logic.editors.ParameterEditor) Clipboard(java.awt.datatransfer.Clipboard) UnsupportedFlavorException(java.awt.datatransfer.UnsupportedFlavorException) ParameterTypeTools(mcjty.rftoolscontrol.logic.registry.ParameterTypeTools) VerticalLayout(mcjty.lib.gui.layout.VerticalLayout) List(java.util.List) Button(mcjty.lib.gui.widgets.Button) IIcon(mcjty.lib.gui.icons.IIcon) Connection(mcjty.rftoolscontrol.logic.Connection) TextField(mcjty.lib.gui.widgets.TextField) java.util(java.util) mcjty.lib.gui.widgets(mcjty.lib.gui.widgets) ParameterValue(mcjty.rftoolscontrol.api.parameters.ParameterValue) DataFlavor(java.awt.datatransfer.DataFlavor) HorizontalAlignment(mcjty.lib.gui.layout.HorizontalAlignment) OpcodeOutput(mcjty.rftoolscontrol.api.code.OpcodeOutput) Label(mcjty.lib.gui.widgets.Label) Window(mcjty.lib.gui.Window) GridInstance(mcjty.rftoolscontrol.logic.grid.GridInstance) ItemStack(net.minecraft.item.ItemStack) HorizontalLayout(mcjty.lib.gui.layout.HorizontalLayout) ProgramValidator(mcjty.rftoolscontrol.logic.compiled.ProgramValidator) GuiTools(mcjty.rftoolscontrol.gui.GuiTools) Logging(mcjty.lib.varia.Logging) ProgramCardItem(mcjty.rftoolscontrol.items.ProgramCardItem) StringSelection(java.awt.datatransfer.StringSelection) RFToolsControl(mcjty.rftoolscontrol.RFToolsControl) Parameter(mcjty.rftoolscontrol.api.parameters.Parameter) RFToolsCtrlMessages(mcjty.rftoolscontrol.network.RFToolsCtrlMessages) GridPos(mcjty.rftoolscontrol.logic.grid.GridPos) SelectionEvent(mcjty.lib.gui.events.SelectionEvent) Opcodes(mcjty.rftoolscontrol.logic.registry.Opcodes) TextFormatting(net.minecraft.util.text.TextFormatting) IOException(java.io.IOException) WindowManager(mcjty.lib.gui.WindowManager) java.awt(java.awt) Slot(net.minecraft.inventory.Slot) ResourceLocation(net.minecraft.util.ResourceLocation) ImageIcon(mcjty.lib.gui.icons.ImageIcon) ClickType(net.minecraft.inventory.ClickType) Label(mcjty.lib.gui.widgets.Label) PositionalLayout(mcjty.lib.gui.layout.PositionalLayout) Panel(mcjty.lib.gui.widgets.Panel) Button(mcjty.lib.gui.widgets.Button) TextField(mcjty.lib.gui.widgets.TextField)

Example 9 with StringUtils.capitalize

use of org.apache.commons.lang3.StringUtils.capitalize in project cas by apereo.

the class InitialFlowSetupAction method configureWebflowContext.

/**
 * Configure the webflow.
 *
 * @param context the webflow context
 */
protected void configureWebflowContext(final RequestContext context) {
    val request = WebUtils.getHttpServletRequestFromExternalWebflowContext(context);
    WebUtils.putWarningCookie(context, Boolean.valueOf(this.warnCookieGenerator.retrieveCookieValue(request)));
    WebUtils.putGeoLocationTrackingIntoFlowScope(context, casProperties.getEvents().getCore().isTrackGeolocation());
    WebUtils.putRememberMeAuthenticationEnabled(context, casProperties.getTicket().getTgt().getRememberMe().isEnabled());
    val staticAuthEnabled = (casProperties.getAuthn().getAccept().isEnabled() && StringUtils.isNotBlank(casProperties.getAuthn().getAccept().getUsers())) || StringUtils.isNotBlank(casProperties.getAuthn().getReject().getUsers());
    WebUtils.putStaticAuthenticationIntoFlowScope(context, staticAuthEnabled);
    if (casProperties.getAuthn().getPolicy().isSourceSelectionEnabled()) {
        val availableHandlers = authenticationEventExecutionPlan.getAuthenticationHandlers().stream().filter(h -> h.supports(UsernamePasswordCredential.class)).map(h -> StringUtils.capitalize(h.getName().trim())).distinct().sorted().collect(Collectors.toList());
        WebUtils.putAvailableAuthenticationHandleNames(context, availableHandlers);
    }
}
Also used : lombok.val(lombok.val) CasConfigurationProperties(org.apereo.cas.configuration.CasConfigurationProperties) UsernamePasswordCredential(org.apereo.cas.authentication.credential.UsernamePasswordCredential) Getter(lombok.Getter) ArgumentExtractor(org.apereo.cas.web.support.ArgumentExtractor) RequiredArgsConstructor(lombok.RequiredArgsConstructor) TicketRegistrySupport(org.apereo.cas.ticket.registry.TicketRegistrySupport) RegisteredServiceAccessStrategyUtils(org.apereo.cas.services.RegisteredServiceAccessStrategyUtils) AuthenticationEventExecutionPlan(org.apereo.cas.authentication.AuthenticationEventExecutionPlan) StringUtils(org.apache.commons.lang3.StringUtils) RequestContext(org.springframework.webflow.execution.RequestContext) CasCookieBuilder(org.apereo.cas.web.cookie.CasCookieBuilder) Authentication(org.apereo.cas.authentication.Authentication) ServicesManager(org.apereo.cas.services.ServicesManager) SingleSignOnParticipationRequest(org.apereo.cas.web.flow.SingleSignOnParticipationRequest) UnauthorizedServiceException(org.apereo.cas.services.UnauthorizedServiceException) NullPrincipal(org.apereo.cas.authentication.principal.NullPrincipal) lombok.val(lombok.val) HttpMethod(org.springframework.http.HttpMethod) AuthenticationServiceSelectionPlan(org.apereo.cas.authentication.AuthenticationServiceSelectionPlan) Collectors(java.util.stream.Collectors) HttpStatus(org.springframework.http.HttpStatus) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) Optional(java.util.Optional) SingleSignOnParticipationStrategy(org.apereo.cas.web.flow.SingleSignOnParticipationStrategy) WebUtils(org.apereo.cas.web.support.WebUtils) BaseCasWebflowAction(org.apereo.cas.web.flow.actions.BaseCasWebflowAction) Event(org.springframework.webflow.execution.Event) UsernamePasswordCredential(org.apereo.cas.authentication.credential.UsernamePasswordCredential)

Aggregations

StringUtils (org.apache.commons.lang3.StringUtils)8 List (java.util.List)5 Collectors (java.util.stream.Collectors)4 java.util (java.util)2 Arrays (java.util.Arrays)2 Slf4j (lombok.extern.slf4j.Slf4j)2 lombok.val (lombok.val)2 Context (android.content.Context)1 Bitmap (android.graphics.Bitmap)1 NonNull (android.support.annotation.NonNull)1 Nullable (android.support.annotation.Nullable)1 ActionMode (android.view.ActionMode)1 LayoutInflater (android.view.LayoutInflater)1 Menu (android.view.Menu)1 MenuItem (android.view.MenuItem)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 LiqueurType (cc.lasmgratel.foodcraftreloaded.minecraft.api.capability.liqueur.LiqueurType)1 LiqueurTypes (cc.lasmgratel.foodcraftreloaded.minecraft.api.capability.liqueur.LiqueurTypes)1 CustomModelMasking (cc.lasmgratel.foodcraftreloaded.minecraft.client.util.masking.CustomModelMasking)1